Pracuję na systemie Mac OS X Yosemite w wersji 10.10.3.
Zainstalowałem Python2.7 i pip używając macport, jak to zrobiono w http://johnlaudun.org/20150512-installing-and-setting-pip-with-macports/
Mogę z powodzeniem instalować pakiety i importować je do mojego środowiska Python i skryptów Pythona. Jednak żaden plik wykonywalny powiązany z pakietem, który można wywołać z wiersza poleceń w terminalu, nie zostanie znaleziony.
Czy ktoś wie, co może być nie tak? (Więcej szczegółów poniżej)
Na przykład podczas instalowania pakietu o nazwie „rosdep” zgodnie z instrukcjami na http://wiki.ros.org/jade/Installation/Source
Mogę uruchomić: sudo pip install -U rosdep
który instaluje się bez błędów, a odpowiednie pliki znajdują się w/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Jeśli jednak spróbuję uruchomić sudo rosdep init
:, wyświetla błąd:"sudo: rosdep: command not found"
To nie jest błąd związany z pakietem. Otrzymuję to dla każdego pakietu zainstalowanego przy użyciu pip na moim komputerze. Próbowałem nawet dodać
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
do mojego $PATH
. Ale plików wykonywalnych nie można znaleźć w wierszu poleceń, mimo że pakiety działają doskonale z poziomu Pythona.
Odpowiedzi:
sprawdź swoją $ PATH
tox
ma tryb linii poleceń:gdzie to jest?
(edytuj:
2.7
rzeczy nie mają tutaj większego znaczenia, sub w każdym,3.x
a pip zachowuje się prawie tak samo)a co jest w mojej $ PATH?
Zwróć uwagę na /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin ? To właśnie pozwala znaleźć moje rzeczy zainstalowane w pip
Teraz, aby zobaczyć, gdzie rzeczy są z Python, spróbuj robić to (substytut
rosdep
dlatox
).który drukuje:
Teraz przejdź do katalogu powyżej
lib
w powyższym. Czy widzisz katalog bin ? Czy widziszrosdep
w tym koszu? Jeśli tak, spróbuj dodaćbin
do swojej $ PATH.wynik:
źródło
rosdep
jest zgodne z Twoim problemem. chodzi mi o to, że musisz znaleźć miejsce, w którymrosdep
jest zainstalowany i jak wygląda $ PATH.which
(jeśli nie jest jeszcze na Twojej ścieżce), możesz również spróbować znaleźć plik binarny, używając systemumlocate
Linux lubmdfind
MacOS.Na macOS z domyślną instalacją Pythona musisz dodać
/Users/<you>/Library/Python/2.7/bin/
do swojej $ PATH.Dodaj to do swojego .bash_profile:
Tam pip instaluje pliki wykonywalne.
Wskazówka: w przypadku innej niż domyślna wersji
which python
języka Python, aby znaleźć lokalizację instalacji języka Python i zastąpić tę część w ścieżce powyżej. (Dzięki za podpowiedź Sanket_Diwale)źródło
which python3
doprowadziła mnie ostatecznie (przez link) do/Library/Frameworks/Python.framework/Versions/3.6/bin/
.Jeśli instalujesz przy użyciu
--user
(np.pip3.6 install --user tmuxp
), Możliwe jest pobranie katalogu instalacyjnego użytkownika dla konkretnej platformy z samego Pythona za pomocąsite
modułu . Na przykład w systemie macOS:Dołączając
/bin
do tego, mamy teraz ścieżkę, w której zostaną zainstalowane pliki wykonywalne pakietu. Możemy dynamicznie zapełniać PATH w pliku rc twojej powłoki w oparciu o wynik; Używam basha, ale przy odrobinie szczęścia jest to przenośne:Używam dokładnych wersji Pythona, aby zmniejszyć ryzyko, że pliki wykonywalne po prostu „znikną”, gdy Python zaktualizuje wersję pomocniczą, np. Z 3.5 do 3.6. Znikną, ponieważ, jak widać powyżej, ścieżka instalacji użytkownika może zawierać wersję Pythona. Więc chociaż
python3
może wskazywać na 3,5 lub 3,6,python3.6
zawsze będzie wskazywać na 3,6. Należy o tym pamiętać podczas instalowania kolejnych pakietów, np. Usepip3.6
overpip3
.Jeśli nie przeszkadza Ci pomysł znikania pakietów, możesz użyć
python2
ipython3
zamiast tego:źródło
Wiem, że pytanie dotyczy macOS, ale tutaj jest rozwiązanie dla użytkowników Linuksa, którzy przybywają tutaj przez Google.
Miałem problem opisany w tym pytaniu, po zainstalowaniu pakietu pdfx przez pip.
Kiedy go uruchomiłem, nic ...
Jeszcze:
Problem w Linuksie polega na tym, że
pip install ...
upuszcza skrypty~/.local/bin
i nie ma tego w domyślnym Debianie / Ubuntu$PATH
.Oto bardziej szczegółowy problem z GitHub: https://github.com/pypa/pip/issues/3813
Aby to naprawić, po prostu dodaj
~/.local/bin
do swojego$PATH
, na przykład dodając następujący wiersz do.bashrc
pliku:Następnie uruchom ponownie powłokę i wszystko powinno działać zgodnie z oczekiwaniami.
źródło
source ~/.bashrc
przeładować.bashrc
konfiguracjęRozwiązanie
W oparciu o inne odpowiedzi, dla
linux
imac
możesz uruchomić:zamiast
python3
można użyć dowolnego innego linku do wersji Pythona:python
,python2.7
,python3.6
,python3.9
, itd.Wyjaśnienie
Aby wiedzieć, gdzie w aktualnym systemie operacyjnym (win, mac, linux) są zainstalowane pakiety użytkownika, uruchamiamy:
Wiemy, że skrypty trafiają do
bin/
folderu, w którym są instalowane pakiety.Więc łączymy ścieżki:
Następnie eksportujemy to do zmiennej środowiskowej.
Na koniec, aby uniknąć powtórzenia polecenia eksportu, dodajemy je do naszego
.bashrc
pliku isource
uruchamiamy nowe zmiany, podając nam sugerowane rozwiązanie wspomniane na początku.źródło
W systemie Windows musisz dodać ścieżkę
%USERPROFILE%\AppData\Roaming\Python\Scripts
do swojej ścieżki.źródło
Natknąłem się na to pytanie, ponieważ stworzyłem, pomyślnie zbudowałem i opublikowałem pakiet PyPI, ale nie mogłem go wykonać po instalacji.
$PATH
Zmienna został prawidłowo ustawiony.W moim przypadku problem polegał na tym, że nie ustawiłem
entry_point
wsetup.py
pliku:źródło
Oprócz dodania
bin
katalogu Pythona do$PATH
zmiennej musiałem również zmienić właściciela tego katalogu, aby działał. Nie mam pojęcia, dlaczego nie byłem już właścicielem.źródło
Kiedy instalujesz Python lub Python3 za pomocą instalatora MacOS (pobranego ze strony Pythona) - dodaje on
export
er do twojego~/.profile
skryptu. Wszystko, co musisz zrobić, to po prostusource
. Ponowne uruchomienie wszystkich terminali również powinno załatwić sprawę.OSTRZEŻENIE - uważam, że lepiej po prostu używać pip3 z Python3 - dla przyszłych korzyści.
Jeśli masz już zainstalowany Python3, poniższe kroki działają dla mnie na macOS Mojave:
Najpierw zainstaluj ansible za pomocą
sudo
-sudo -H pip3 install ansible
tworzysz dowiązanie symboliczne do
bin
ścieżki Pythonasudo ln -s /Library/Frameworks/Python.framework/Versions/Current/bin /Library/Frameworks/Python.framework/current_python_bin
i zszyj go
.profile
export PATH=$PATH:/Library/Frameworks/Python.framework/current_python_bin
uruchom
source ~/.profile
i zrestartuj wszystkie powłoki terminali.Rodzaj
ansible --version
źródło