PyCharm не может найти пакеты в virtualenv

У меня есть последний PyCharm CE, и я использую его с virtualenv. Я интерпретировал интерпретатор как интерпретатор в virtualenv. Окно Project Interpreter в PyCharm перечисляет все пакеты, которые я установил. Я подтвердил это, запустив pip freeze > requirements.txt и выполнив пакеты вручную.

Моя проблема в том, что PyCharm не найдет в своих редакторах определенных включений, например Flask-Login:

В from flask.ext.login import current_user, login_user, logout_user, login_required включенные current_user, login_user, logout_user, login_required отмечены как неразрешенные ссылки.

Я что-то пропустил?

Ответ 1

Проблема может заключаться в том, что PyCharm собирает ошибочные "пути интерпретатора" для вашей виртуальной среды. Перейдите сюда:

PyCharm (menu) -> Preferences (Menu option)
               -> Project: <name> (Dropdown) 
               -> Project Interpreter (Menu option)
               -> 'Settings' button (Looks like a gear)
               -> More (Menu option)
               -> Select your virtualenv interpreter
               -> Click 'Show paths for interpreter' button (on bottom of list window)

Теперь, когда вы находитесь в этом (по общему признанию, извращенно найденном) месте, вы должны увидеть пути, используемые этим интерпретатором. Если моя теория верна, они указывают на глобальные местоположения в системе. Чтобы добавить пути виртуальной среды, вы должны нажать кнопку + и добавить соответствующие пути, существующие в вашей виртуальной среде. Как только вы закончите с этим, рекомендуется выбрать глобальные системные пути и нажать -, чтобы удалить их. Нажмите "Применить" и перейдите в File -> Invalidate caches / Restart, чтобы перезагрузить PyCharm.

Это должно заставить вашего интерпретатора указывать правильное расположение библиотек, которые вы установили в ваш virtualenv, и вы больше не должны получать ошибку импорта. Обратите внимание, что даже с этим исправлением вы не увидите свои библиотеки под Project Interpreter, но они должны быть загружены.

Ответ 2

В новейшей версии PyCharm (2016.1.4 в моем случае):

  • настройки
  • Проект: название проекта
    • переводчик проекта
    • справа будет выпадающий список, где вы сможете выбрать переводчика. Должны быть варианты venv.

Смотрите изображение ниже для лучшего объяснения (как они сказали, 1 картинка стоит тысячи слов)

Setting python interpreter

Ответ 3

Я также столкнулся с той же проблемой (включая все еще не найдены) даже после Натаниэля Форда и правильного предложения. Убедитесь, что в конфигурации запуска/отладки выбран правильный интерпретатор Python:

enter image description here

Ответ 4

Откройте Preferences -> Project -> Project Interpreter, вы видите там модуль?

Если да, у вас может быть другой файл где-то в вашем проекте, имеющее то же имя, что и flask.ext.login, это предотвратит поиск pycharm фактического модуля.

Если нет, вы можете нажать ... рядом с вашим интерпретатором и выбрать more..., выбрать ваш интерпретатор и внизу (рядом с фильтром), нажмите Show paths for the selected interpreter, вы можете добавить путь к вашему модулю есть.

Ответ 5

Я не смог назначить существующую виртуальную среду своему проекту, но после перехода

Файл → Настройки → Проект interpreter-> Показать all-> нажать "+"

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

Ответ 6

Для меня самым простым решением было открыть проект в корневом каталоге (в моем проекте есть каталоги сервера и клиента, поэтому корневой каталог содержал их оба). Когда вы открываете проект в корневом каталоге, он может найти зависимости, не вмешиваясь в настройки Pycharm, так как он использует их по соглашению.

Ответ 7

Я заметил, что каждый раз, когда я открываю другой проект, в нем все еще есть венец проекта, над которым я ранее работал.

Что я делаю:

Ctrl-Alt-s (чтобы перейти в настройки), затем Project Interpreter/settings (значок шестеренки), показать все, затем удалить все среды venv, которые не являются вашим текущим проектом (используйте знак -). Перезапустите, и вам должно быть хорошо идти.

Ответ 8

Мои два цента на эту тему, поскольку я недавно боролся с этим. Натаниэль Форд ответ хороший, за исключением того, что эта часть:

               -> Select your virtualenv interpreter

было неясно для меня.

Я пробовал несколько раз с

~/.virtualenvs/python-audition-2.9/bin/python

тогда как он работал только с

~/.virtualenvs/python-audition-2.9/local/bin/python

Заметьте .../local/... на последнем пути? Это было действительно важно в моем случае. И не забудьте File -> Invalidate caches / Restart перезагрузить PyCharm.

Ответ 9

Перейдите в /venv/bin/и проверьте все скрипты активации. Твой путь может быть неправильным.