jak ustawić różne zmienne PYTHONPATH odpowiednio dla python3 i python2
Chcę dodać konkretną ścieżkę biblioteki tylko do python2. Po dodaniu export PYTHONPATH="/path/to/lib/"
do mojego .bashrc
, wykonując python3 pojawia się błąd: twoja ścieżka PYTHONPATH wskazuje na katalog site-packages dla Pythona 2.x ale używasz Pythona 3.x!
Myślę, że jest to spowodowane tym, że python2 i python3 mają wspólną zmienną PYTHONPATH
.
Więc mogę ustawić różne zmienne PYTHONPATH
odpowiednio dla python2 i python3. Jeśli nie, jak Mogę dodać ścieżkę biblioteki wyłącznie do określonej wersji python?
2 answers
Możesz utworzyć plik konfiguracyjny mymodule.pth
Pod lib/site-packages
(w systemie Windows) lub lib/pythonX.Y/site-packages
(w systemach Unix i Macintosh), a następnie dodać jedną linię zawierającą katalog do dodania do ścieżki Pythona.
Z docs.python2 i docs.python3 :
Plik konfiguracyjny ścieżki jest plikiem, którego nazwa ma postać
name.pth
i istnieje w jednym z czterech wymienionych powyżej katalogów; jego zawartość to dodatkowe pozycje (po jednym w linii), które należy dodać dosys.path
. Nieistniejące elementy nigdy nie są dodawane dosys.path
i nie sprawdza się, czy Element odnosi się do katalogu, a nie do pliku. Żaden element nie jest dodawany dosys.path
więcej niż jeden raz. Puste linie i linie zaczynające się od # są pomijane. Wykonywane są linie zaczynające się odimport
(po których następuje spacja lub tabulator).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-31 13:12:27
PYTHONPATH
jest w pewnym sensie hack, jeśli chodzi o zarządzanie pakietami. "Ładnym" rozwiązaniem byłoby spakowanie twojej Biblioteki i zainstalowanie .
Załóżmy, że Twój "Pakiet" ma pojedynczy plik o nazwie {[8] } i przechowujemy go w /home/user/mylib/wow.py
.
Utwórz plik /home/user/mylib/setup.py
o następującej treści:
from setuptools import setup
setup(name="WowPackage",
packages=["."],
)
To wszystko, teraz możesz "poprawnie zainstalować" swój pakiet do wybranej przez Ciebie dystrybucji Pythona bez konieczności zawracania sobie głowy PYTHONPATH
. Jeśli chodzi o "właściwą instalację", masz co najmniej trzy opcje: {]}
-
"naprawdę właściwe". Skopiuje Twój kod do katalogu python site-packages:
$ python setup.py install
-
"rozwój". Dodaje tylko link ze strony python site-packages do
/home/user/mylib
. Oznacza to, że zmiany w kodzie w katalogu będą skuteczne.$ python setup.py develop
-
"użytkownik". Jeśli tak nie chcesz zapisywać do katalogów systemowych, możesz zainstalować pakiet ("properly "lub" in development mode") do katalogu
/home/user/.local
, gdzie Python znajdzie je również samodzielnie. W tym celu wystarczy dodać--user
do komendy.$ python setup.py install --user $ python setup.py develop --user
Aby usunąć pakiet zainstalowany w trybie deweloperskim, wykonaj
$ python setup.py develop -u
Lub
$ python setup.py develop -u --user
Aby usunąć pakiet zainstalowany "poprawnie", wykonaj
$ pip uninstall WowPackage
Jeśli Twój Pakiet jest bardziej interesujący niż pojedynczy plik (np. masz podkatalogów i tym podobne), po prostu lista tych w parametrze packages
funkcji setup
(będziesz musiał wypisać wszystko rekurencyjnie, dlatego będziesz używał funkcji pomocniczej dla większych bibliotek). Gdy już się przyzwyczaisz, koniecznie przeczytaj bardziej szczegółową instrukcję.
Na koniec idź i dodaj swój pakiet do PyPI - to jest tak proste, jak wywołanie python setup.py sdist register upload
(będziesz potrzebował nazwy użytkownika PyPI).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-03 13:12:47