Где Pip3 устанавливает модули?

  • Убунту 15.10
  • Питон 3.4.3+
  • Джанго 1.8.7

Когда я пытаюсь import django в интерпретаторе python3, он говорит ImportError: No module named 'django'. Я знаю, что Django 1.8.7 установлен, потому что я могу получить версию #, выполнив django-admin --version в командной строке терминала.

Когда я попробовал python3 manage.py runserver в каталоге проекта Django, я получаю эту ошибку:

Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ImportError: No module named 'django'

Итак, опять же (как и ожидалось), это не путь, по которому Python может его найти.

Я посмотрел в /usr/local/lib/python3.4/dist-packages, но это пустой каталог.

Я сделал whereis django и whereis Django, и это просто дает мне строку с django: или Django: соответственно и без списка путей.

Я попытался погуглить как найти путь к Django, но это не дало ничего полезного.

Я нашел и проверил код самого файла django-admin, но в нем ничего не указано, куда установлен Django. Как ни странно, файл python импортирует модуль django, и он работает, хотя файлы проекта интерпретатора и Django не видят модуль django. Так что это на пути к питону, но это не так?!? Я не знаю и не могу найти.

У меня никогда не было такой проблемы с предыдущей Ubuntu (или любой другой ОС). Кто-нибудь понял, как я могу найти, где установлен Django? На самом деле, я не могу найти модули, которые я установил через pip3. Я пытаюсь понять это уже более часа, и я очень смущен и расстроен.


person Zamphatta    schedule 25.11.2015    source источник


Ответы (2)


Обычно pip 3 устанавливается на дистрибутивные пакеты python3.

Вы всегда можете использовать pip с:

python3 -m pip install package

чтобы проверить, есть ли у вас проблемы с другой установкой python3

ls /usr/local/lib | grep python

Но самый простой способ не экспериментировать с этой головной болью — использовать виртуальные среды.

person Zartch    schedule 25.11.2015
comment
Отличная идея. Это показывает, что у меня есть Python3.4 и 3.5 в системе. Я понятия не имел, что в Ubuntu 15.10 есть и 3.4, и 3.5. Поэтому я попытался запустить интерпретатор Python как python3.5 вместо python3, и тогда Django заработал! Так что спасибо тебе! Я бы не догадался, что Ubuntu устанавливает 2 версии Python 3, а затем по умолчанию использует более старую версию, а pip3 по умолчанию устанавливает более новую версию. Они не делали этого раньше. - person Zamphatta; 25.11.2015

Я думаю, вы установили django вне виртуальной среды. скачать виртуальную среду по

pip install virtualenv
virtualenv your_env

Активировать виртуальную среду.

source your_env/bin/activate

Затем установите django в свою виртуальную среду.

person Sapanjeet    schedule 25.11.2015
comment
Это работает, спасибо. Однако я не хотел использовать virtualenv, я хочу, чтобы это было общесистемным. - person Zamphatta; 25.11.2015
comment
Виртуальные среды добавляют некоторые умственные и технологические накладные расходы по сравнению с глобально доступной установкой, но обеспечивают наибольшую гибкость. - person Sapanjeet; 26.11.2015