Jak skonfigurować niestandardową ścieżkę PYTHONPATH za pomocą VM i PyCharm?

85

Używam IntelliJ z wtyczką Python i funkcją Remote Interpreter do komunikacji z moją maszyną wirtualną Vagrant. Prawidłowo konfiguruje zdalnego interpretera do korzystania z interpretera mojej maszyny wirtualnej. Ale używam niestandardowej ścieżki PYTHONPATH w mojej maszynie wirtualnej i chciałbym, aby IntelliJ rozpoznawał tę ścieżkę i włączał moduły do ​​tej ścieżki podczas programowania.

Jak skonfigurować zdalny interpreter IntelliJ / PyCharm, aby używał niestandardowej ścieżki PYTHONPATH na maszynie wirtualnej?

baalexander
źródło
Mam dokładnie ten problem, poza tym, że mam wiele projektów według wspólnego schematu i teraz (w Emacsie) wszystko ustawiam dynamicznie. Konfigurowanie go dla każdego projektu w Pycharm wygląda jak obciążenie.
AdamC

Odpowiedzi:

124

W przypadku PyCharm 5 (lub 2016.1) możesz:

  1. wybierz Preferencje> Interpreter projektu
  2. po prawej stronie selektora tłumacza znajduje się przycisk „...”, kliknij go
  3. wybierz „więcej ...”
  4. pojawi się nowe okno „Tłumacze projektu”
  5. wybierz najbardziej odpowiedni przycisk (o nazwie „pokaż ścieżki dla wybranego tłumacza”)
  6. pojawi się okno „Ścieżki interpretera”
  7. kliknij przycisk „+”> wybierz żądany katalog PYTHONPATH (folder zawierający moduły Pythona) i kliknij OK
  8. Gotowe! Ciesz się tym!

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj wprowadź opis obrazu tutaj

phil
źródło
To jest to, co robię w moim projekcie, tak irytujące. Mam projekt A, projekt wspólny, test projektu. Aby uruchomić unittesty w ramach testu projektu, dodałem zależności projektu, więc test projektu zależy od projektu A i wspólnego, ale nadal muszę ręcznie dodawać foldery z A i wspólne do PYTHONPATH.
thinkanotherone
Spowoduje to dodanie katalogu do globalnej PYTHONPATH dla tego interpretera, prawda? Nie tylko projekt?
Ray
@Ray tak, wydaje się, że zmieni to globalne ustawienia interpretera. Ale możemy używać różnych virtualenv do różnych projektów i ustawiać dla nich różne PYTHONPATH.
phil
Zauważ, że najpierw musisz ustawić interpreter jako interpreter twojego projektu, w przeciwnym razie lewy przycisk jest wyłączony
ospider
W OSX, Cmd + Shift + Period pokazuje ukryte foldery w oknie dialogowym wyboru (np. / Usr) - ponieważ wydaje się, że nie ma sposobu, aby po prostu wpisać ścieżkę.
Flash
83

Instrukcje dotyczące edytowania PYTHONPATH lub rozwiązywania problemów z rozpoznawaniem importu w celu sprawdzenia kodu są następujące:

  1. Otwórz Preferencje (na Macu skrót klawiaturowy to ⌘,).

Jak dostać się do Ustawień z Menu

  1. Poszukaj na Project Structurepasku bocznym po lewej stronie poniżejProject: Your Project Name

  2. Dodaj lub usuń moduły na prawym pasku bocznym

Ustawienia struktury projektu w Pycharm 4.5

EDYCJA : Zaktualizowałem ten zrzut ekranu dla PyCharm 4.5

Bjorn
źródło
Czy to nadal obowiązuje? Podobno mam najnowszego profesjonalistę PyCharm, ale brakuje mi wielu z tych kategorii ... w tym struktura projektu! Ale dziękuję za opublikowanie tego !!!
R Claven,
1
Cześć, zaktualizowałem zrzut ekranu dla PyCharm 4.5, najnowszej wersji. Wygląda na to, że przeorganizowali ustawienia na pasku bocznym.
Bjorn,
Właściwie jestem ci winien WIELKIE podziękowania. Bawiłem się „ustawieniami domyślnymi” zamiast ustawieniami projektu. Twoja odpowiedź pomogła mi to zrozumieć, a potem rozwiązałem wiele rozbieżności i zadziałało. DZIĘKUJĘ CI!
R Claven
Czy istnieje sposób, aby to zrobić na całym świecie? dodawanie /Library/Python/2.7/site-packages i /usr/local/lib/python2.7/site-packages do każdego projektu, który otwieram, śmierdzi.
jeremyjjbrown
Tak @jeremyjjbrown, wierzę, że możesz to zrobić, klikając „Project Interpreter” i wybierając ścieżkę tłumacza zawierającą żądane pakiety witryny. To pytanie było odpowiedzią na udostępnienie pakietów specyficznych dla projektu dla ich projektów. Możesz nawet użyć pliku Requirements.txt, aby dodać cały projekt deps w pycharm.
Bjorn
16

Dla mnie rozwiązaniem było pójść do

Run > Edit Configuration > Defaults > Python

następnie zarządzaj

  • „Dodaj katalogi główne treści do PYTHONPATH” i
  • „Dodaj źródłowy katalog główny do PYTHONPATH”

pola wyboru, a także ustawienie pola „Katalog roboczy”.

Jeśli masz skonfigurowane własne konfiguracje uruchamiania / debugowania, możesz chcieć przejść do

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

i tam go edytuj.

Mój problem polegał na tym, że chciałem, aby całe repozytorium zostało uwzględnione w moim projekcie PyCharm 2016.2, ale tylko podfolder był rzeczywistym korzeniem kodu źródłowego Pythona. Dodałem go jako „Source Root”, klikając folder prawym przyciskiem myszy

Mark directory as > Source Root

Następnie odznacz „Dodaj katalog główny zawartości do PYTHONPATH” i zaznacz „Dodaj katalog źródłowy do PYTHONPATH” w menu konfiguracyjnym Uruchom / Debuguj. Następnie sprawdziłem ścieżkę do folderu, wykonując:

import sys
logger.info(sys.path)

To dało:

[
    '/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'
]

Jednak bez poprawki powiedział:

[
    '/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'
]

Co oznaczało, że mam dołączony folder główny projektu. To zepsuło mi ścieżkę.

André C. Andersen
źródło
Dziękuję, nie jestem ekspertem w Pythonie i zawsze zastanawiałem się, jak zerknąć na ścieżki importu, do których mogę dotrzeć! (ta sys.pathczęść)
Rastikan
Nie jest to idealne rozwiązanie, ponieważ wymaga aktualizacji każdej konfiguracji uruchamiania.
StephenBoesch
@javadba Jeśli chcesz, aby działał dla wszystkich konfiguracji, przejdź do Run > Edit Configuration > Templates > Python.
André C. Andersen
@ AndréC.Andersen thx! Nigdy nawet nie spojrzał na szablonach wcześniej.
StephenBoesch
13

Dokonano tego za pomocą PyCharm Community 2019.1

  1. Przejdź do ustawień projektu Ustawienia
  2. Przejdź do struktury projektu i kliknij prawym przyciskiem myszy katalog, który chcesz dodać, i kliknij „Źródła” Struktura projektu - dodaj źródła

Powinno to dodać katalog do twojej pythonpath Struktura projektu - po dodaniu źródeł

dustindorroh
źródło
3

Aktualizacja poprawnej odpowiedzi Phil przewidzianym dla nowszych wersji pycharm (np 2019,2).

Przejdź do Plik> Ustawienia i znajdź swój projekt, a następnie wybierz Interpreter projektu . Teraz kliknij przycisk z zębatką po prawej stronie wybranego interpretera projektu (kiedyś ... ).

wprowadź opis obrazu tutaj

Z rozwijanego menu wybierz Pokaż wszystko ... iw otwartym oknie dialogowym kliknij ikonę z folderem i dwoma podfolderami.

wprowadź opis obrazu tutaj

Zostanie wyświetlone okno dialogowe z bieżącymi ścieżkami interpretera, kliknij +, aby dodać jeszcze jedną.

Fanta
źródło
DZIĘKUJĘ CI!!! Razem z kolegą walczyliśmy z dostosowaniem jego środowiska do mojego i nie przypominam sobie wykonywania tych czynności, ale jest tam ważna ścieżka, którą mam (która nawet mówi „dodana przez użytkownika”).
Drarok
2

Z mojego doświadczenia wynika, że ​​używanie w ogóle zmiennej PYTHONPATH jest zwykle złym podejściem, ponieważ nie działa dobrze z VENV w systemie Windows. PYTHON podczas ładowania przygotuje ścieżkę, dołączając PYTHONPATH do ścieżki, co może spowodować, że twój starannie przygotowany Venv będzie preferencyjnie pobierał globalne pakiety witryn.

Zamiast używać ścieżki PYTHON, umieść plik pythonpath.pth w odpowiednim katalogu pakietów witryn (chociaż uważaj, niestandardowe pythony czasami szukają ich w różnych lokalizacjach, np. każde środowisko wirtualne. Będzie to działać jak PYTHONPATH, tylko że będzie specyficzne dla instalacji Pythona, więc możesz mieć oddzielne dla każdej instalacji / środowiska Pythona. Pycharm silnie integruje się z VENV, jeśli po prostu przejdziesz do yse Pythona VENV jako instalacji Pythona.

Zobacz na przykład to pytanie SO po więcej szczegółów na temat plików .pth ....

phil_20686
źródło
1

Ostatnie wybory 12/2019 na PYTHONPATH dla danego tłumacza. wprowadź opis obrazu tutaj

Richard Keene
źródło
0

Możesz to zrobić, przechodząc do okna dialogowego tłumacza. Kliknij interpreter, którego używasz, a pod nim powinieneś zobaczyć dwie zakładki, jedną o nazwie Pakiety, a drugą o nazwie Ścieżka.

Kliknij Ścieżka i dodaj do niej ścieżkę maszyny wirtualnej.

Gry Brainiac
źródło
Kiedy klikam zdalny interpreter i dodaję Classpath, narzeka, gdy określam zdalny katalog (na przykład /home/vagrant/mydir). Czy muszę czymś poprzedzić ścieżkę? Mój interfejs jest trochę inny, ponieważ używam IntelliJ z wtyczką Pythona, a nie PyCharm, jeśli to pomaga.
baalexander
1
Możesz po prostu udać się do interpretera SSH i załadować rzeczy z pliku włóczęgi, jest tam opcja.
Games Brainiac
0

W Intellij v2017.2 możesz przejść do:

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

Nazwa = PYTHONPATH

value = your_python_path

Joris Kinable
źródło