Jaki jest najprostszy sposób przeprowadzenia lokalnej instalacji pakietu python?

32

Nie chcę zajmować się virtualenv dla lokalnej instalacji Pythona, chcę tylko zainstalować lokalnie kilka pakietów bez zajmowania się PYTHONPATHzmienną środowiskową. Jak to zrobić?

Aron Ahmadia
źródło
Mówisz „radzić sobie z” tak, jakby wirtualny był kłopotem. Uważam, że jest dokładnie odwrotnie. (Być może chcesz --system-site-packages?)
Andreas Klöckner,
został hipotetycznie postawiony :) virtualenv jest niesamowity, ale nie pasuje do każdego przypadku użycia.
Aron Ahmadia,

Odpowiedzi:

48

Python (od wersji 2.6 i 3.0 ) wyszukuje teraz w katalogu ~ / .local instalacje lokalne, które nie wymagają uprawnień administratora, dlatego wystarczy wskazać instalatorowi ten katalog.

Jeśli pakiet został już pobrany fooi chcesz go zainstalować ręcznie, wpisz:

cd path/to/foo
python setup.py install --user

Jeśli używasz easy_install i chcesz, aby pakiet został pobrany i zainstalowany:

easy_install --prefix=$HOME/.local/ foo

Aktualizacja przez RafiK

pip install --user foo

Następująca odpowiedź jest dostępna dla celów historycznych: To trochę więcej pracy, jeśli używasz pipa do pobrania i zainstalowania:

pip install --install-option="--prefix=$HOME/.local" foo
Aron Ahmadia
źródło
3
aktualizacja: pip obsługuje teraz flagę --user: pip install --user SomePackage (link do instrukcji) Dzięki temu wszystko powinno działać od
razu
5

Mimo że lubię Python jako język, dystrybucja pakietów Pythona to bałagan. Zawsze znajduję ludzi, którzy nie znają Pythona, który ma z tym problem.

Obok instalacji lokalnej dla użytkownika opisanej przez Arona (przy użyciu --user lub --prefix) inną opcją jest EasyBuild ( http://hpcugent.github.com/easybuild/ ). Nie tylko dla pakietów Python, ale dla każdego (naukowego) pakietu oprogramowania. Gdy EasyBuild ma wsparcie dla niego, zbudowanie i zainstalowanie pakietu oprogramowania jest w zasadzie pojedynczym poleceniem.

Aby uzyskać listę obecnie obsługiwanych pakietów oprogramowania, zobacz https://github.com/hpcugent/easybuild/wiki/List-of-supported-software-packages .

Oświadczenie: Jestem programistą EasyBuild.

Kenneth Hoste
źródło
2

@Aron: Pamiętaj, aby dodać ścieżkę lokalnych pakietów witryn do zmiennej środowiskowej $ PYTHONPATH

corion
źródło
Jest on automatycznie uwzględniany w ścieżce witryny od wersji Python 2.6 i Python 3.0 :)
Aron Ahmadia
@AronAhmadia nie, jeśli skorzystasz z tej --prefixopcji.
Jens Timmerman
@JensTimmerman - ścieżka do strony to miejsce, w którym Python szuka, kiedy uruchamia się moduł do zaimportowania, za każdym razem, gdy uruchamiasz Python. Opcja prefiksu określa, gdzie należy zainstalować dany pakiet podczas instalowania pakietu Python. Dwa całkowicie odrębne pojęcia.
Aron Ahmadia
@AronAhmadia tak, chodzi mi o to, że kiedy używasz easy_install --prefix = / tmp, musisz dodać „/tmp/lib/pythonx.x/site-packages” do zmiennej PYTHONPATH, inaczej nie zostanie on pobrany przez python.
Jens Timmerman
@AronAhmadia pastebin.com/6FCTetCc
Jens Timmerman