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/и проверьте все скрипты активации. Твой путь может быть неправильным.