Pip-3.2'yi Cygwin'e Kurmak


85

Cygwin'de Python 3 kurulu. Ancak, Python 3 paketlerini üzerinden yükleyemiyorum pip. Bunu yapmanın bir yolu var mı?


1
neden olmasın? bu python kurulumu için pip yüklediniz mi? Hangi hatayı alıyorsun?
mata

Pip kurulur, ancak paketin python 2 sürümünü yükler. Örneğin, ImportError: No module named yamlbaşarılı bir şekilde çalıştırıldıktan sonra bile pyyaml ​​döndüren betiğim pip install pyyaml.
David Y. Stephenson

1
Ardından pipkomut dosyası doğru python sürümüyle çalışmaz. Onun /path/to/python3 -m pip install ...yerine deneyin . Ayrıca, pip betiğinin shebang'ını kontrol edin.
mata

@mata FYI, Python 2 de yüklü. usr/bin/python3 -m pip install pyyamldöner /usr/bin/python3: No module named pip. Dolayısıyla benim asıl sorum; cygwin'e pip-3 nasıl kurulur?
David Y. Stephenson

1
python3 -m ensurepipve python2 -m ensurepip. Python.org/dev/peps/pep-0453'e
gavenkoa

Yanıtlar:


129

1) Cygwin'i kurarken, listeden python / python-setup araçlarını kurduğunuzdan emin olun. Bu, "easy_install" paketini kuracaktır.

2) Aşağıdaki komutu yazın:

easy_install-a.b pip   

a.b2.7 veya 3.4 veya başka herhangi bir şey olabilen python sürümünüzle değiştirmelisiniz .


4
Bu cevap benim için harika çalıştı. Üniversitede çalıştığım için birkaç adım daha atmam gerekti: İlk olarak, kurulum yoluma gittim (c: / cygwin64 / bin /). Sonra otomatik tamamlama, biraz farklı adlı kolay kurulum dosyasını bulmama yardım etti: easy_install 2.7.9
Protomancer

6
Bunu yumurtasız bir duruma easy_install-2.7 pip && pip install 'pip<8' && pip install pip --upgrade
düşmek

6
python3 için python3 ve python3-setuptools paketlerini kullanın. Açıktır, ancak biri python 3 -setuptools'u unutabilir
simon

2
Ve sürümü (yani -2.7) unutmayın. Bilgisayarımda başka bir python dağıtımım vardı ve 'easy_install', cygwin'inki yerine onu çalıştırdı.
jtbr

44

Birden fazla python kurulumunuz varsa, her kurulum için ayrı ayrı pip (ve muhtemelen kurulum araçlarını) kurmanız gerekir.
Bunu yapmak için, önce ez_setup.pypython3 ile indirip çalıştırabilirsiniz:

/usr/bin/python3 ez_setup.py

Bu, kurulum araçlarını yüklemeli ve ayrıca easy_installpython sürümünüz için bir komut dosyası oluşturmalıdır , örneğin /usr/bin/easy_install-3.2pip'i kurmak için kullanabileceğiniz:

/usr/bin/easy_install-3.2 pip

Bu, pip'i python3 site paketleri dizininize kuracak ve yine /usr/bin/pip-3.2bu python sürümü için paketleri kurmak için kullanabileceğiniz bir komut dosyası oluşturacaktır .

Alternatif olarak, buradan ve buradan kurulum talimatlarını takip edebilirsiniz .


2
Mükemmel! Bu cevabı takiben cygwin sorunumu çözebildim.

Cygwin'e yüklerken "OSError: [Errno 13] İzin reddedildi" bu hatayı alıyorum. O makinede yönetici haklarına sahibim.
arulraj.net

2
Ez_setup.py bağlantısı öldü
spartygw


15

OP özellikle Python3 hakkında konuştuğundan, kullanıcının zaten Python2 kurulu olması durumunda bunu belirtmemiz gerektiğini düşünüyorum, ki bu çok muhtemeldir.

# 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. Birkaç apt-cyg çatalı vardır , ancak en iyi korunan kou1okada'dır , onu seveceksiniz.


DÜZENLEME: 2018-11-15

Virtualenv'i kullanmadan başladığım için , yakın zamanda Cygwin Python3 kurulumumu yenilemek zorunda kaldım ve süreçte aşikar olması gereken ancak kolayca unutulabilecek birkaç şeyi fark ettim.

  • Python3'ü Cygwin'e (ve muhtemelen diğer * nix dağıtımlarının çoğunda) yüklerken ve kullanırken, yalnızca temel Python3 yorumlayıcısını bir Cygwin paketi olarak kurun. O andan itibaren yalnızca pip yükleyiciyi kullanın .

  • Pip kullanarak herhangi bir python3 paketini kurduktan veya güncelledikten sonra , Cygwin paket yöneticiniz paketinizin olduğundan şikayet edecektir "Incomplete". Bunun nedeni, pip'in bu paketteki dosyaları değiştirmiş olmasıdır. İle kontrol edin: cygcheck.exe -c |grep Incomplete.
    Bu paketleri Cygwin ile yeniden kurmayın.

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

Yaptığım şey, Python3'ün kendisi hariç , python3 ile ilgili tüm Cygwin paketlerini temizlemek oldu . Sonra gerekli tek yüklenmiş yeniden: .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

Bu da sahip yeniden yüklenmiş tüm olmalıdır Setuptools son güncellemeleri ile bağımlılıkları.

Şu andan itibaren kendinize bir iyilik yapın ve sanal bir ortamı kullanmaya başlayın.


olduğu ensurepip, çünkü cygwin gerekli? Genellikle pipgemide bulunur, buraya
Timo

@Timo, benim için öyleydi, ne sebeple olursa olsun python3 için pip3'ü kaçırdım
Lepidopteron

pipKurulum yaptığınız sürece , her zaman sembolik bağlantı yapabilirsiniz /usr/bin/, ancak belki de yerel garantiye alma düzeltmesini kullanmak daha zariftir . Zaten eski bir sürümüm varsa veya onunla birlikte yüklenmişse setuptools, ancak ensurepippaket bende kurulu değilse IDK .
not2qubit

2
Kou1okada'nın apt-cyg çatalını önermek için +1, yıllardır en çok özellikli ve en iyi korunmuş olanıdır.
Prometheus

2

Windows'ta paketleri kurmak için pip kullanabilirsiniz. Cygwin altında birden fazla python kurulumunuz varsa, Python 2 gibi tam python yolunu belirtin.

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

Python 3

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

Pip kurulu değilse aşağıdaki komutu kullanarak kurun

/usr/bin/python2.7 -m ensurepip 

veya

/usr/bin/python3.6 -m ensurepip

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.