Как правильно установить Python и Django - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь настроить среду разработки Python / Django на моем компьютере LinuxMint 19.1. Я установил новейшую версию Python 3.7.3, Pip и Django. Казалось, он работал, пока я не понял, что он не использует правильную версию Python. Все попытки исправить это были трудными.

Когда я наберу python -V, отобразится Python 2.x. Когда я набрал python3 -V, отобразился бы Python 3.6.8. Поэтому я обновил альтернативы и настроил python, поэтому теперь, когда я печатаю python -V, я получаю Python 3.7.3, а когда я печатаю python3 -V, я все еще получаю Python 3.6.8. Я увидел, что мне пришлось переустановить Django, чтобы он был связан с новой версией Python, поэтому я попытался установить снова с помощью Pip, но получил ошибку (тот же ModuleNotFoundError: Нет модуля с именем 'pip' error, как показано ниже). Поэтому я удалил Pip и переустановил его. Я пошел дальше и установил Пип.

sudo apt install python-pip

Это сообщило, что все работало нормально. Затем я попытался установить Django и снова получил ту же ошибку.

pip install django
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ModuleNotFoundError: No module named 'pip'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 24, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ModuleNotFoundError: No module named 'pip'

Так что теперь я не уверен, как поступить. Я не уверен, что сделал что-то не так, чтобы создать эту проблему.

Любая помощь будет оценена.

Ответы [ 6 ]

1 голос
/ 26 июня 2019

python-pip3 для python3

После установки пакета python-pip3 вам необходимо запустить pip3 install xxxx соответственно.

Все вышеперечисленное не относится к альтернативам.

0 голосов
/ 26 июня 2019

По вашему мнению, вы установили Python 3 (3.7.3), а pip приходит уже установлен , так как Python 3> 3.4.Кроме того, вы говорите, что настроили свой компьютер, поэтому при запуске python -V вы получаете 3.7.3.Вы можете установить django, выполнив следующую команду:

$ python -m pip install django

Однако рекомендуемый способ установки пакета - создать виртуальную среду .Затем вы можете выполнить следующие шаги:

$ python -m venv venv # this will create a virtual environment called venv
$ source venv/bin/activate # activates your virtual environment 
$ pip install django # installs django in your virtual environment

Это установит django в виртуальной среде.Обратите внимание, что у вас будет индикатор того, что вы используете виртуальную среду в своем терминале.(venv) $

0 голосов
/ 26 июня 2019

Сначала проверьте, можете ли вы получить доступ к оболочке Python 3.7 , введя команду python3.7. Вы увидите что-то вроде этого.

Python 3.7 shell

Если это работает, не волнуйтесь. Еще несколько шагов. Затем установите или обновите pip на Python 3.7 . Выполните команду python3.7 -m pip install --upgrade pip.

install or upgrade pip for Python 3.7

Таким способом вы можете установить любой пакет pip. python3.7 -m pip install Django.

installing Django for Python 3.7

Я получил ошибку разрешения, поэтому запустил ее с правами sudo.

python3.7 manage.py makemigrations
python3.7 manage.py migrate
python3.7 manage.py runserver

python3.7 manage.py <your_command>

Таким образом, вы можете запустить свой проект Django, который вы создали для Python 3.7 .

0 голосов
/ 26 июня 2019

Как уже упоминалось, ваша проблема в том, что в Linux pip используется для python2, а pip3 для python3.Обратитесь к этой статье для получения пошаговых инструкций по установке pip3 или pip в Linux.

Звучит так, будто вы испытываете трудности с управлением версиями Python, поэтому я рекомендую использовать pyenv .

Для Mac, вот как я настраивал свой ноутбук (обратите внимание, что минорная версия может быть изменена).

выполняется в терминале

brew install pyenv
pyenv install 3.7.1
pyenv install 3.6.6
pyenv install 2.7.15
pyenv global 3.7.1 3.6.6 2.7.15

Добавить в профиль bash:

#pyenv
PATH="$(pyenv root)/shims:${PATH}"
export PATH
if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

Дополнительные сведения об управлении устанавливаемыми пакетами pip см. pipenv .Поскольку вы захотите узнать, какая версия django и другие зависимости установлены, и сможете легко обновлять ее, как только ваш проект будет запущен.Если вы пойдете по этому пути, вы устраните эти проблемы, так как тогда установка будет pipenv isntall django вместо pip3 install django.

0 голосов
/ 26 июня 2019

Лучше использовать pipenv install django или poetry add django, как это происходит с виртуальной средой.

0 голосов
/ 26 июня 2019

Python 2.x поставляется с системой Linux.просто используйте pip3 установить django

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...