Instalación de Pip-3.2 en Cygwin

84

Tengo Python 3 instalado en Cygwin. Sin embargo, no puedo instalar paquetes de Python 3 a través de pip. ¿Hay alguna forma de hacer esto?

David Y. Stephenson
fuente
1
¿Por qué no? ¿Ha instalado pip para esta instalación de Python? que error obtienes
mata
Pip está instalado, pero instala la versión python 2 del paquete. Por ejemplo, mi script que requiere pyyaml ​​regresa ImportError: No module named yaml, incluso después de ejecutarse correctamente pip install pyyaml.
David Y. Stephenson
1
Entonces el pipscript no se ejecuta con la versión correcta de Python. Intente en su /path/to/python3 -m pip install ...lugar. Además, verifique el shebang del script pip.
mata
@mata FYI, Python 2 también está instalado. usr/bin/python3 -m pip install pyyamldevuelve /usr/bin/python3: No module named pip. De ahí mi pregunta original; ¿Cómo se instala pip-3 en cygwin?
David Y. Stephenson
1
python3 -m ensurepipy python2 -m ensurepip. Busque en python.org/dev/peps/pep-0453
gavenkoa

Respuestas:

128

1) Mientras instala cygwin, asegúrese de instalar python / python-setuptools de la lista. Esto instalará el paquete "easy_install".

2) Escriba el siguiente comando:

easy_install-a.b pip   

Debe reemplazar a.bcon su versión de Python, que puede ser 2.7 o 3.4 o cualquier otra cosa.

moovon
fuente
4
Esta respuesta funcionó muy bien para mí. Tuve que tomar un par de pasos adicionales porque trabajo en una universidad: primero, navegué hasta mi ruta de instalación (c: / cygwin64 / bin /). Luego, autocompletar me ayudó a encontrar el archivo de instalación fácil llamado ligeramente diferente: easy_install 2.7.9
Protomancer
6
Hice esto para terminar en un estado sin huevos:easy_install-2.7 pip && pip install 'pip<8' && pip install pip --upgrade
Anthony Sottile
6
para python3, use los paquetes python3 y python3-setuptools . Es obvio, pero uno puede olvidarse de Python 3 -setuptools
simon
2
Y no olvide la versión (es decir, -2.7). Tenía otra distribución de Python en mi computadora, y 'easy_install' invocó esa en lugar de la de cygwin.
jtbr
44

Si tiene más de una instalación de Python, entonces necesita instalar pip (y probablemente también setuptools) para cada instalación por separado.
Para hacerlo, primero puede descargarlo ez_setup.pyy ejecutarlo con python3:

/usr/bin/python3 ez_setup.py

Eso debería instalar setuptools y también crear un easy_installscript para su versión de Python, por ejemplo /usr/bin/easy_install-3.2, que puede usar para instalar pip:

/usr/bin/easy_install-3.2 pip

Esto instalará pip en el directorio de paquetes de su sitio python3 y, nuevamente, creará un script /usr/bin/pip-3.2, que puede usar para instalar paquetes para esta versión de Python.

Alternativamente, puede seguir las instrucciones de instalación aquí y aquí .

mata
fuente
2
¡Excelente! Pude resolver mi problema de cygwin siguiendo esta respuesta.
Recibo "OSError: [Errno 13] Permiso denegado" este error durante la instalación en cygwin. Tengo derechos de administrador en esa máquina.
arulraj.net
2
Enlace a ez_setup.py está muerto
spartygw
29

Creo que las instrucciones de instalación alternativas vinculadas por mata son las más simples:

Para instalar pip, descargue get-pip.py de forma segura .

Luego ejecute lo siguiente (que puede requerir acceso de administrador):

python get-pip.py
svick
fuente
2
fwiw, esto parece no hacer nada silenciosamente bajo cygwin, no estoy seguro de por qué :(
Anthony Sottile
2
Funciona con Babun, en Windows 10 x64
xizdaqrian
15

Dado que OP habla específicamente de Python3, creo que debemos especificar eso en caso de que el usuario ya tenga Python2 instalado, lo cual es muy probable.

# 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)

Por cierto. Hay varias bifurcaciones de apt-cyg , pero la mejor mantenida es la de kou1okada , te encantará.


EDITAR: 2018-11-15

Debido a que comencé sin usar virtualenv , recientemente tuve que actualizar mi instalación de Cygwin Python3 y me di cuenta de algunas cosas en el proceso que deberían haber sido obvias, pero que pueden olvidarse fácilmente.

  • Al instalar y usar Python3 en Cygwin (y probablemente en la mayoría de las otras distribuciones * nix), solo instale el intérprete básico de Python3 como un paquete Cygwin. A partir de ese momento, solo use el instalador de pip .

  • Después de haber instalado o actualizado cualquier paquete de python3 usando pip , su administrador de paquetes Cygwin se quejará de que su paquete es "Incomplete". Eso es porque pip ha reemplazado / actualizado los archivos en ese paquete. Consulte con: cygcheck.exe -c |grep Incomplete.
    No vuelva a instalar esos paquetes con Cygwin.

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

Entonces, lo que hice fue borrar todos los paquetes Cygwin relacionados con python3, excepto el propio Python3. Entonces Reinstalé el único necesario: 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

Eso también debería haber reinstalado todas las dependencias de setuptools con las últimas actualizaciones.

A partir de ahora, hazte un favor y empieza a utilizar un entorno virtual.

not2qubit
fuente
es ensurepipnecesario debido a cygwin? Por lo general, pipestá a bordo, vea aquí
Timo
@Timo, para mí lo fue, por alguna razón me faltaba pip3 para python3
Lepidopteron
Siempre que lo haya pipinstalado, siempre puede realizar un enlace simbólico /usr/bin/, pero tal vez sea más elegante usar la corrección nativa asegurarpip . IDK si ya tenía una versión anterior o si estaba instalada junto con setuptools, pero no tengo el ensurepippaquete instalado.
not2qubit
2
+1 por recomendar la bifurcación de apt-cyg de kou1okada, es la más completa y mejor mantenida hasta ahora, la he estado usando durante años.
Prometheus
2

En Windows, puede usar pip para instalar paquetes. Si tiene varias instalaciones de Python en cygwin, proporcione la ruta completa de Python, por ejemplo, Python 2

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

Python 3

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

En caso de que no tenga pip instalado, instálelo usando el siguiente comando

/usr/bin/python2.7 -m ensurepip 

o

/usr/bin/python3.6 -m ensurepip
Nitin_k29
fuente
0

Acabo de aprender, inspirado en https://www.scivision.co/install-pip-in-cygwin/ y la respuesta anterior, que en lugar de usar pip, solo tiene que usar pip2 para python2 o pip3 para python 3 en cygwin en las ventanas. Pregunté sobre esto todo el día ...

DanielW
fuente