Instalowanie Pip-3.2 na Cygwin

84

Mam Pythona 3 zainstalowanego na Cygwin. Jednak nie mogę zainstalować pakietów Pythona 3 za pośrednictwem pip. Czy jest na to sposób?

David Y. Stephenson
źródło
1
Dlaczego nie? czy zainstalowałeś pip dla tej instalacji Pythona? jaki błąd otrzymujesz?
mata,
Pip jest zainstalowany, ale instaluje wersję pakietu python 2. Na przykład mój skrypt, który wymaga pyyaml, powraca ImportError: No module named yaml, nawet po pomyślnym uruchomieniu pip install pyyaml.
David Y. Stephenson,
1
Wówczas pipskrypt nie działa z poprawną wersją języka Python. Spróbuj /path/to/python3 -m pip install ...zamiast tego. Sprawdź także shebang skryptu pip.
mata
@mata FYI, Python 2 jest również zainstalowany. usr/bin/python3 -m pip install pyyamlzwraca /usr/bin/python3: No module named pip. Stąd moje pierwotne pytanie; jak zainstalować pip-3 na cygwin?
David Y. Stephenson,
1
python3 -m ensurepipi python2 -m ensurepip. Zajrzyj na python.org/dev/peps/pep-0453
gavenkoa

Odpowiedzi:

128

1) Podczas instalacji cygwin upewnij się, że instalujesz python / python-setuptools z listy. Spowoduje to zainstalowanie pakietu „easy_install”.

2) Wpisz następujące polecenie:

easy_install-a.b pip   

Musisz zastąpić a.bswoją wersją Pythona, która może być 2.7 lub 3.4 lub cokolwiek innego.

moovon
źródło
4
Ta odpowiedź zadziałała świetnie dla mnie. Musiałem wykonać kilka dodatkowych kroków, ponieważ pracuję na uniwersytecie: Najpierw przeszedłem do mojej ścieżki instalacji (c: / cygwin64 / bin /). Następnie funkcja automatycznego uzupełniania pomogła mi znaleźć łatwy plik instalacyjny o nazwie nieco inny: easy_install 2.7.9
Protomancer
6
Zrobiłem to, żeby skończyć w stanie bez jajek:easy_install-2.7 pip && pip install 'pip<8' && pip install pip --upgrade
Anthony Sottile
6
w przypadku python3 użyj pakietów python3 i python3-setuptools . To oczywiste, ale można zapomnieć o pythonie 3 -setuptools
simon
2
I nie zapomnij o wersji (tj. -2,7). Miałem inną dystrybucję Pythona na moim komputerze i 'easy_install' wywołała tę, a nie cygwin.
jtbr
44

Jeśli masz więcej niż jedną instalację Pythona, musisz zainstalować pip (i prawdopodobnie także setuptools) dla każdej instalacji oddzielnie.
Aby to zrobić, możesz najpierw pobrać ez_setup.pyi uruchomić go za pomocą python3:

/usr/bin/python3 ez_setup.py

To powinno zainstalować setuptools, a także stworzyć easy_installskrypt dla twojej wersji Pythona, np. /usr/bin/easy_install-3.2, Którego możesz użyć do zainstalowania pip:

/usr/bin/easy_install-3.2 pip

Spowoduje to zainstalowanie pip w katalogu pakietów witryny python3 i ponowne utworzenie skryptu /usr/bin/pip-3.2, którego można użyć do zainstalowania pakietów dla tej wersji języka Python.

Alternatywnie możesz postępować zgodnie z instrukcjami instalacji tutaj i tutaj .

mata
źródło
2
Świetny! Po tej odpowiedzi udało mi się rozwiązać mój problem z cygwinem.
Otrzymuję ten błąd „OSError: [Errno 13] Odmowa uprawnień” podczas instalacji w cygwin. Mam uprawnienia administratora na tym komputerze.
arulraj.net
2
Link do ez_setup.py nie żyje
spartygw
29

Myślę, że alternatywne instrukcje instalacji połączone przez mata są najprostsze:

Aby zainstalować pip, bezpiecznie pobierz get-pip.py .

Następnie uruchom następujące (co może wymagać dostępu administratora):

python get-pip.py
svick
źródło
2
fwiw, wydaje się, że to po cichu nic nie robi pod cygwin - nie wiem dlaczego :(
Anthony Sottile
2
Działa pod Babun, na Windows 10 x64
xizdaqrian
15

Ponieważ OP mówi konkretnie o Pythonie3, myślę, że musimy to określić na wypadek, gdyby użytkownik miał już zainstalowany Python2, co jest bardzo prawdopodobne.

# If you don't have Python3 already, use apt-cyg:
apt-cyg install python3

# First update pip, pip2 
pip2 install --upgrade pip 

# Install pip3:
python3 -m ensurepip

# Finally update pip3:
pip3 install --upgrade pip

$ pip3 -V
pip 9.0.1 from /usr/lib/python3.4/site-packages (python 3.4)

BTW. Istnieje kilka widelców apt-cyg , ale najlepiej utrzymany jest ten z kou1okada , pokochasz go.


EDYCJA: 2018-11-15

Ponieważ zacząłem nie używać virtualenv , ostatnio musiałem odświeżyć swoją instalację Cygwin Python3 i zdałem sobie sprawę z kilku rzeczy, które powinny być oczywiste, ale można o nich łatwo zapomnieć.

  • Podczas instalowania i używania Python3 na Cygwin (i prawdopodobnie na większości innych dystrybucji * nix), zainstaluj tylko podstawowy interpreter Python3 jako pakiet Cygwin. Od tego momentu należy używać tylko instalatora pip .

  • Po zainstalowaniu lub zaktualizowaniu jakichkolwiek pakietów Python3 przy użyciu pip , menedżer pakietów Cygwin będzie narzekał, że jest to pakiet "Incomplete". Dzieje się tak, ponieważ pip zastąpił / zaktualizował pliki w tym pakiecie. Skontaktować się z: cygcheck.exe -c |grep Incomplete.
    Nie instaluj ponownie tych pakietów z Cygwin.

# cygcheck.exe -c |grep Incomplete
python3-setuptools      34.3.2-1         Incomplete

Więc to, co zrobiłem, wyczyściło wszystkie pakiety Cygwin związane z pythonem3, z wyjątkiem samego Python3. Potem ponownie zainstalowany tylko jeden potrzebne: python3-setuptools.

# apt-cyg remove python3-setuptools
apt-cyg install python3-setuptools

# Fix pip3 symlink (or just pip if you don't have python2)
ln -s /usr/bin/pip3.6 /usr/bin/pip3

# That also installs the Cygwin packages:  
# python3-appdirs, python3-packaging, python3-pyparsing, python3-six

# Now, update setuptools with pip:
pip3 install -U --force-reinstall --only-binary=:all: --no-clean --no-cache-dir setuptools

# pip list |grep setuptools
setuptools          40.5.0

Powinno to również spowodować ponowne zainstalowanie wszystkich zależności setuptools z najnowszymi aktualizacjami.

Od teraz zrób sobie przysługę i zacznij korzystać z wirtualnego środowiska.

not2qubit
źródło
jest ensurepipkonieczne ze względu na cygwin? Zwykle pipjest na pokładzie, patrz tutaj
Timo,
@Timo, dla mnie to było, z jakiegoś powodu brakowało mi pip3 dla pythona3
Lepidopteron
Tak długo, jak pipzainstalowałeś, zawsze możesz wstawić dowiązanie symboliczne /usr/bin/, ale być może bardziej eleganckie jest użycie natywnej poprawki applypip . IDK, jeśli miałem już starą wersję lub jeśli została zainstalowana razem z setuptools, ale nie mam ensurepipzainstalowanego pakietu.
not2qubit
2
+1 za polecenie rozwidlenia apt-cyg firmy kou1okada, jest to najbardziej w pełni funkcjonalny i najlepiej utrzymany, używany od lat.
Prometeusz
2

W systemie Windows do instalowania pakietów można użyć pip. Jeśli masz wiele instalacji Pythona pod cygwin, podaj pełną ścieżkę Pythona, np. Python 2

/usr/bin/python2.7 -m pip install pyyaml

Python 3

/usr/bin/python3.6 -m pip install pyyaml

Jeśli nie masz zainstalowanego pip, zainstaluj go za pomocą poniższego polecenia

/usr/bin/python2.7 -m ensurepip 

lub

/usr/bin/python3.6 -m ensurepip
Nitin_k29
źródło
0

Właśnie się dowiedziałem, zainspirowany https://www.scivision.co/install-pip-in-cygwin/ i wcześniejszą odpowiedzią, że zamiast używać pip, wystarczy użyć pip2 dla python2 lub pip3 dla python 3 w cygwin w oknach. Zastanawiałem się nad tym przez cały dzień ...

DanielW
źródło