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?


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.


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 .


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


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.


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.