Właśnie to robiłem dzisiaj, wydaje się, że nie ma jasnej dokumentacji dla ludzi, którzy chcą zachować kontrolę nad tym, co jest zainstalowane i gdzie.
Przypuśćmy, że uruchomiłeś pip3, cokolwiek instaluje, domyślnie umieszczasz pliki w ~ / .local, jak wiesz. Zwyczajowo w Uniksie dzieli się typy plików, umieszczając te „podatne” na ~ / .local / bin.
Wpisz tekst w terminalu, aby zobaczyć swoją ścieżkę:
$ echo $PATH
Sprawdź, czy masz zainstalowane pliki Pythona w ~ / .local
$ ls -la ~/.local/bin
To potwierdza, że pliki wykonywalne są dostępne dla mnie. Jeśli te uprawnienia do plików pokazują „x”, są one wykonywalne.
Teraz dodaj ten katalog do ścieżki w terminalu
$ export PATH=~/.local/bin:$PATH
Sprawdź ponownie swoją ścieżkę, aby zobaczyć zmianę. Pamiętaj, że jest to ustawienie tymczasowe tylko dla tej sesji terminala. Nie dotyczy to innych terminali jednocześnie lub w przyszłości. To dobre miejsce do testowania rzeczy.
Następnie każdy program wykonywalny w ~ / .local / bin powinien zostać uruchomiony, jeśli wpiszesz jego nazwę w wierszu poleceń. Nie ma na przykład potrzeby uruchamiania „~ / .local / bin / jupyter”. Po prostu wpisz „jupyter”. „./”, który czasem widzisz, nie jest potrzebny, wtedy uruchamiasz program z katalogu roboczego, który nie znajduje się na ścieżce.
Jeśli później zdecydujesz, że chcesz uczynić to stałym, aby ~ / .local / bin zawsze znajdował się w twojej ŚCIEŻCE, możesz to zrobić, edytując niektóre pliki konfiguracyjne środowiska. W zależności od konfiguracji, na przykład w moim katalogu domowym „.bashrc” ostatnim wierszem jest „eksport ŚCIEŻKA = $ ŚCIEŻKA: $ DOM / bin”. Więc mógłbym umieścić $ HOME / local / bin z przodu tego. Uwaga: Napisałem $ HOME, a nie „~”. Potem za każdym razem, gdy używam powłoki BASH, PATH będzie naprawiane. Jeśli możesz użyć innych powłok, myślę, że właściwą rzeczą jest edycja pliku ~ / .profile. Myślę, że wszystkie powłoki Ubuntu będą pobierać ten plik.
W moim przypadku zainstalowałem kilka programów z pip3, takich jak jupyter. Jednym ze sposobów, aby upewnić się, gdzie został zainstalowany, jest uruchomienie
$ pip3 list
pokazuje wszystkie dostępne pakiety, nie tylko te zainstalowane przez pip3.
$ pip3 show jupyter
W moim przypadku na przykład:
---
Metadata-Version: 2.0
Name: jupyter
Version: 1.0.0
Summary: Jupyter metapackage. Install all the Jupyter components in one go.
Home-page: http://jupyter.org
Author: Jupyter Development Team
Author-email: jupyter@googlegroups.org
Installer: pip
License: BSD
Location: /home/pauljohn/.local/lib/python3.5/site-packages
Requires: nbconvert, ipykernel, ipywidgets, notebook, jupyter-console, qtconsole
Classifiers:
Intended Audience :: Developers
Intended Audience :: System Administrators
Intended Audience :: Science/Research
License :: OSI Approved :: BSD License
Programming Language :: Python
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.3
Programming Language :: Python :: 3.4
Nie chcę, żeby to zabrzmiało jak płomień, ale może wydawać się atakiem. Ostrzegam was, abyście nie chętnie stosowali się do rad, które niektórzy tu zaoferują, aby uruchomić „sudo pip3 xxx”. Ogólnie wolisz uruchamiać instalacje root tylko z pakietami Debiana, a nie z pip3. Jeśli biegniesz bez sudo, ograniczasz niebezpieczeństwo do konta użytkownika. Jeśli goofujesz podczas uruchamiania skryptu jako root, możesz rozproszyć pliki po całym dysku twardym i pożałować. Zwłaszcza jeśli inne osoby logują się i korzystają z tego komputera, unikaj robienia czegokolwiek jako root, chyba że masz pewność.
Warto również zauważyć, że pip3 domyślnie instaluje się w ~ / .local, ale nie jest to konieczne. Przeczytaj „man pip3”, poszukaj „-t” (--target). Możesz określić katalog instalacyjny. Myślę, że to dobrze, ponieważ możesz ograniczyć wszelkie uszkodzenia do jednego innego katalogu i usunąć go, kiedy chcesz. ~ / .local może zawierać inne cenne rzeczy zainstalowane przez inne programy i wolisz ich nie zatrzeć. I tak myślę o ~ / .local jako o miejscu bardziej nastawionym niż programowym.