Zwykle można uniknąć konieczności robienia czegokolwiek z PYTHONPATH, używając .pthplików . Po prostu umieść plik z rozszerzeniem .pth (jakakolwiek podstawowa nazwa działa) w folderze pakietów witryn virtualenv, np. lib\python2.7\site-packagesZ bezwzględną ścieżką do katalogu zawierającego twój pakiet jako jedyną zawartość.
możesz także przejść do folderu site-packages środowiska wirtualnego i utworzyć dowiązanie symboliczne do pliku .pth, na przykład: ln -s ścieżka / do / jakiś plik.pth. Okazało się to przydatne, gdy potrzebowałem tego samego katalogu, aby był dostępny w wielu środowiskach wirtualnych
Jeśli używasz virtualenv, prawdopodobnie powinieneś również używać virtualenvwrapper , w takim przypadku możesz użyć polecenia add2virtualenv, aby dodać ścieżki do ścieżki Pythona dla bieżącego virtualenv:
Chcę dodać przyjazny komentarz, że na współdzielonych gospodarzach i podobnych sytuacjach opakowanie venv nie jest pożądane. W takich przypadkach działa jedna wentylacja i wszystko, co jest potrzebne, aby dodatkowa instalacja nie była pożądana. Lokalnie jest inaczej, ale na serwerze / obrazie KISS jest naprawdę ważny.
@ajostergaard: Przepraszam, powinienem był podać źródło. Jeśli spojrzysz na kod źródłowy programu add2virtualenv, zobaczysz, że modyfikuje on sys.path. Zgadzam się, że dokumenty sprawiają, że brzmi to tak, jakby modyfikowała PYTHONPATHzmienną środowiskową, ale wydaje się, że jest to niepoprawne. bitbucket.org/virtualenvwrapper/virtualenvwrapper/src/...
Możesz także spróbować umieścić dowiązanie symboliczne do jednego z twoich virtualenv.
na przykład. 1) aktywuj virtualenv 2) uruchom Pythona 3) importuj sys i sprawdź sys.path 4) znajdziesz tam ścieżkę wyszukiwania Pythona. Wybierz jeden z nich (np. Pakiety-witryn) 5) przejdź tam i utwórz dowiązanie symboliczne do swojego pakietu, takie jak: ln -s ścieżka-do-twojego-pakietu nazwa-z-którego-będziesz-importować
W ten sposób powinieneś być w stanie zaimportować go nawet bez aktywacji virtualenv. Po prostu spróbuj: path-to-your-virtualenv-folder / bin / python i zaimportuj swój pakiet.
jeśli chcesz, aby to działało z dowolną wersją Pythona, po prostu użyj zwykłego, starego formatu ciągu znaków zamiast fantazyjnego f-string f "... {dir_path}"
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.