Как настроить собственный PYTHONPATH с помощью виртуальной машины и PyCharm?

86

Я использую IntelliJ с плагином Python и функцией удаленного интерпретатора для связи с моей Vagrant VM. Он правильно настраивает удаленный интерпретатор для использования интерпретатора моей виртуальной машины. Но я использую собственный PYTHONPATH в своей виртуальной машине, и я хотел бы, чтобы IntelliJ распознал этот путь и включил модули в этот путь при разработке.

Как настроить удаленный интерпретатор IntelliJ / PyCharm для использования пользовательского PYTHONPATH на виртуальной машине?

Baalexander
источник
У меня именно эта проблема, за исключением того, что у меня много проектов по общей схеме, и прямо сейчас (в Emacs) я настраиваю все динамически. Настройка его для каждого проекта в Pycharm выглядит обременительным.
AdamC 03

Ответы:

125

Для PyCharm 5 (или 2016.1) вы можете:

  1. выберите Preferences> Project Interpreter
  2. справа от селектора интерпретатора есть кнопка "...", нажмите ее
  3. выберите "еще ..."
  4. всплывает новое окно "Интерпретаторы проекта"
  5. выберите самую правую кнопку (с названием «показать пути для выбранного интерпретатора»)
  6. всплывает окно "Пути интерпретатора"
  7. нажмите кнопку «+»> выберите желаемый каталог PYTHONPATH (папку, содержащую модули Python) и нажмите OK
  8. Готово! Наслаждайся этим!

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь введите описание изображения здесь

Фил
источник
Это то, что я делаю в своем проекте, так что меня раздражает. У меня есть проект А, общий проект, тестовый проект. Чтобы запускать модульные тесты в рамках тестирования проекта, я добавил зависимости проекта, поэтому тест проекта зависит от проекта A и общего, но мне все равно нужно вручную добавлять папки из A и общие в PYTHONPATH.
thinkanotherone
Это добавит каталог в глобальный PYTHONPATH для этого интерпретатора, верно? Не только проект?
Рэй
@Ray да, похоже это изменит глобальные настройки интерпретатора. Но мы можем использовать разные virtualenv для разных проектов и устанавливать для них разные PYTHONPATH.
Фил
Обратите внимание, что вы должны сначала установить интерпретатор в качестве интерпретатора вашего проекта, в противном случае крайняя левая кнопка будет отключена
ospider
В OSX Cmd + Shift + Period показывает скрытые папки в диалоговом окне выбора (например, / usr) - поскольку, похоже, нет способа просто ввести путь.
Flash
83

Инструкции по редактированию вашего PYTHONPATH или устранению проблем с разрешением импорта для проверки кода следующие:

  1. Откройте настройки (на Mac это сочетание клавиш ⌘,).

Как попасть в настройки из меню

  1. Ищите на Project Structureбоковой панели слева подProject: Your Project Name

  2. Добавить или удалить модули на правой боковой панели

Настройки структуры проекта в Pycharm 4.5

РЕДАКТИРОВАТЬ : я обновил этот снимок экрана для PyCharm 4.5

Bjorn
источник
Это все еще применимо? У меня предположительно есть последняя версия PyCharm Professional, но мне не хватает многих из этих категорий. включая структуру проекта! Но спасибо, что разместили это !!!
R Claven
1
Привет, я обновил снимок экрана для самой последней версии PyCharm 4.5. Похоже, они реорганизовали настройки на боковой панели.
Бьорн
На самом деле я должен вам ОГРОМНОЕ спасибо. Я возился с "настройками по умолчанию" вместо настроек проекта. Ваш ответ здесь помог мне понять это, а затем я устранил множество несоответствий, и это сработало. БЛАГОДАРЮ ВАС!
R Claven
Есть ли способ сделать это глобально? добавление /Library/Python/2.7/site-packages и /usr/local/lib/python2.7/site-packages в каждый открываемый мной проект воняет.
jeremyjjbrown
Да @jeremyjjbrown, я считаю, что вы можете сделать это, щелкнув «Project Interpreter» и выбрав путь интерпретатора, в котором есть нужные вам пакеты сайта. Этот вопрос просто отвечал на то, чтобы сделать пакеты для конкретных проектов доступными для их проектов. Вы даже можете использовать файл requirements.txt, чтобы добавить весь свой проект deps в pycharm.
Бьорн
16

Для меня решение было пойти в

Run > Edit Configuration > Defaults > Python

затем управлять

  • "Добавить корни содержимого в PYTHONPATH" и
  • "Добавить исходный корень в PYTHONPATH"

чекбоксы, а также установка поля «Рабочий каталог».

Если вы настроили свои собственные конфигурации запуска / отладки, вы можете перейти к

Run > Edit Configuration > Python > [Whatever you called your config]

и отредактируйте его там.

Моя проблема заключалась в том, что я хотел, чтобы весь мой репозиторий был включен в мой проект PyCharm 2016.2, но только подпапка была фактическим корнем исходного кода python. Я добавил его как «Исходный корень», щелкнув папку правой кнопкой мыши и затем

Mark directory as > Source Root

Затем снимите флажок «Добавить корень содержимого в PYTHONPATH» и установите флажок «Добавить исходный корень в PYTHONPATH» в меню конфигурации Run / Debug. Затем я проверил путь к папке, выполнив:

import sys
logger.info(sys.path)

Это выдвинуло:

[
    '/usr/local/my_project_root/my_sources_root', 
    '/usr/local/my_project_root/my_sources_root', 
    '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', 
    '/usr/lib/python3.4/lib-dynload', 
    '/usr/local/lib/python3.4/dist-packages', 
    '/usr/lib/python3/dist-packages'
]

Однако без исправления он сказал:

[
    '/usr/local/my_project_root/my_sources_root', 
    '/usr/local/my_project_root',                   <-- NOT WANTED
    '/usr/lib/python3.4', 
    '/usr/lib/python3.4/plat-x86_64-linux-gnu', 
    '/usr/lib/python3.4/lib-dynload', 
    '/usr/local/lib/python3.4/dist-packages', 
    '/usr/lib/python3/dist-packages'
]

Это означало, что я включил корневую папку проекта. Это испортило мне путь.

Андре К. Андерсен
источник
Спасибо, я не эксперт по Python и всегда задавался вопросом, как узнать, какие пути импорта я могу достичь! (та sys.pathчасть)
Растикан
Это не идеально, поскольку требует обновления конфигурации каждого запуска.
StephenBoesch
@javadba Если вы хотите, чтобы он работал для всех конфигураций, перейдите по ссылке Run > Edit Configuration > Templates > Python.
Андре К. Андерсен
@ AndréC.Andersen спасибо! Я раньше даже не смотрел на шаблоны .
StephenBoesch
13

Это было сделано с помощью PyCharm Community 2019.1

  1. Перейдите в настройки проекта Настройки
  2. Перейдите в раздел "Структура проекта", щелкните правой кнопкой мыши каталог, который хотите добавить, и выберите "Источники". Структура проекта - добавить источники

Это должно добавить каталог в ваш путь к python Структура проекта - после добавления источников

Dustindorroh
источник
3

Обновление правильного ответа Фил при условии, для более поздних версий PyCharm (например , 2019,2).

Перейдите в Файл> Настройки и найдите свой проект, затем выберите Project Interpreter . Теперь нажмите кнопку с шестеренкой справа от выбранного интерпретатора проекта (раньше это был ... ).

введите описание изображения здесь

В раскрывающемся меню выберите Показать все ... и в открывшемся диалоговом окне щелкните значок с папкой и двумя подпапками.

введите описание изображения здесь

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

Фанта
источник
БЛАГОДАРЮ ВАС!!! Мы с коллегой боролись за то, чтобы настроить его среду так, чтобы она соответствовала моей, и я не помню, чтобы выполнял эти шаги, но у меня есть важный путь (который даже говорит «добавлен пользователем»).
Drarok
2

По моему опыту, использование переменной PYTHONPATH вообще обычно неправильный подход, потому что он плохо работает с VENV в Windows. PYTHON при загрузке подготовит путь, добавив PYTHONPATH к пути, что может привести к тому, что ваш тщательно подготовленный Venv будет предпочтительно получать пакеты глобальных сайтов.

Вместо использования пути PYTHON включите файл pythonpath.pth в соответствующий каталог сайтов-пакетов (хотя будьте осторожны, пользовательские питоны иногда ищут их в разных местах, например, enthought ищет в том же каталоге, что и python.exe для своих файлов .pth) с каждая виртуальная среда. Он будет действовать как PYTHONPATH, только он будет специфичным для установки python, поэтому вы можете иметь отдельный для каждой установки / среды python. Pycharm сильно интегрируется с VENV, если вы просто выберете питон VENV в качестве своей установки Python.

См., Например, этот вопрос SO для получения более подробной информации о файлах .pth ....

phil_20686
источник
1

Последние подборки PYTHONPATH за 12/2019 для данного интерпретатора. введите описание изображения здесь

Ричард Кин
источник
0

Что ж, вы можете сделать это, перейдя в диалоговое окно переводчика. Нажмите на интерпретатор, который вы используете, и под ним вы должны увидеть две вкладки: одна называется «Пакеты», а другая - «Путь».

Щелкните Путь и добавьте к нему путь к виртуальной машине.

Игры Brainiac
источник
Когда я нажимаю на удаленный интерпретатор и добавляю Classpath, он жалуется, когда я указываю удаленный каталог (например, /home/vagrant/mydir). Мне нужно что-то предварять путь? Мой интерфейс немного отличается, поскольку я использую IntelliJ с плагином Python, а не PyCharm, если это помогает.
baalexander,
1
Ну, вы можете просто перейти к интерпретатору SSH и загрузить материал из бродячего файла, его вариант там.
Games Brainiac
0

В pycharm 5 следуйте этому, https://www.jetbrains.com/pycharm/help/configuring-python-interpreter-for-a-project.html

1) Откройте диалоговое окно «Параметры» и щелкните страницу «Интерпретатор проекта».
2) На панели "Проекты" выберите нужный проект.
3) Для выбранного проекта выберите SDK из списка доступных интерпретаторов Python и виртуальных сред.

Саураб
источник
0

В Intellij v2017.2 вы можете перейти к:

run > edit configurations > click ... next to the field 'Environment variables' > click the green + sign

Имя = PYTHONPATH

значение = your_python_path

Джорис Кинабл
источник