update not found cli aws python linux amazon-web-services pip rhel6

not - install python 2.7 linux



Python3.6 ImportError: no se puede importar el nombre ''main'' de Linux RHEL6 (10)

Mi objetivo final es descargar e instalar awscli http://docs.aws.amazon.com/cli/latest/userguide/awscli-install-linux.html

Parece que se requieren python y pip para lograr mi objetivo.

Instalar python a través de yum no me funciona, así que descargué e instalé python3 manualmente de la siguiente manera:

wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz tar xf Python-3.6.1.tar.xz cd Python-3.6.1.tar.xz ./configure make sudo make altinstall

Cuando lo hago

pip3.6 --version

Entiendo esto:

Traceback (most recent call last): File "/usr/local/bin/pip3.6", line 7, in <module> from pip import main ImportError: cannot import name ''main''

Entorno: RHEL 6.6 Accedido vía ssh

Que esta pasando? ¿Cómo instalar pip y python3.6 correctamente en mi caja de linux?

Editar:

Cuando intento instalar a través de yum falla, por lo que estoy tratando de evitar usar yum:

[asemani@rcdc9pfda5r Python-3.6.1]$ sudo yum -y install python-pip

[sudo] password for asemeani: Loaded plugins: security Setting up Install Process No package python-pip available. Error: Nothing to do

Otra edición:

Después de importar sys y luego llamar sys.path esto es lo que obtengo:

[asemani@rcdc9pfda5r Python-3.6.1]$ python3.6 Python 3.6.1 (default, Apr 28 2017, 11:03:27) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path ['''', ''/usr/local/lib/python36.zip'', ''/usr/local/lib/python3.6'', ''/usr/local/lib/python3.6/lib-dynload'', ''/usr/local/lib/python3.6/site-packages''] >>> quit() [asemani@rcdc9pfda5r Python-3.6.1]$ ls -l /usr/local/lib/python3.6/site-packages total 32 -rw------- 1 root root 126 Apr 27 23:45 easy_install.py drwx------ 11 root root 4096 Apr 27 23:45 pip drwx------ 2 root root 4096 Apr 27 23:45 pip-9.0.1.dist-info drwx------ 5 root root 4096 Apr 27 23:45 pkg_resources drwx------ 2 root root 4096 Apr 27 23:45 __pycache__ -rw-r--r-- 1 root root 119 Apr 27 23:45 README.txt drwx------ 5 root root 4096 Apr 27 23:45 setuptools drwx------ 2 root root 4096 Apr 27 23:45 setuptools-28.8.0.dist-info


Debe editar el archivo pip3 así (su ruta podría ser diferente):

nano /Library/Frameworks/Python.framework/Versions/3.6/bin/pip3

Y cambia la línea principal de importación para que diga:

from pip._internal import main

Después de este cambio, mi pip3 comenzó a funcionar y estoy en macOS. Si está utilizando Linux, su ruta podría ser algo como / usr / bin / pip3

Encontré este consejo y más información de este hilo: https://github.com/pypa/pip/issues/5240


Hacer un cd /usr/bin

Luego sudo nano pip para editar el archivo pip

Cambiar from pip import main a from pip._internal import main

Esto resolverá el problema


Mi sistema operativo era Mac sierra y tuve que cambiar la siguiente línea

from pip import main

dentro

from pip._internal import main


Mi sistema operativo es Linux Mint 18

sudo nano /usr/bin/pip3

Cambio

from pip import main

A

from pip._internal import main


No invoque pip / pip3 directamente, que son accesos directos en diferentes ubicaciones para diferentes usuarios y no se mantienen adecuadamente al actualizar pip (marque ''which pip'' y ''sudo which pip'').

$ sudo python -m pip install xxx #for python2 $ sudo python3 -m pip install xxx #for python3

Estos comandos no toman accesos directos e invocan directamente el módulo pip, que se mantiene muy bien (también funciona en Windows)


No sé exactamente la respuesta, pero ese error indica que el script puede encontrar algún paquete llamado pip , pero no el correcto. Probablemente, una versión antigua de pip, desde antes de que crearan un método main (puede verificar pip.__version__ desde el shell de python).

Estoy dispuesto a apostar a que todavía tienes otra versión anterior de python instalada que tiene su propia versión de pip. Por alguna razón, tu pythonpath carga ese en lugar del que va con py3.6.

Algunas posibilidades para mirar en:

  • No sé nada acerca de redhat, pero ¿hay alguna forma específica de redhat para elegir el "pitón predeterminado" que se usará?

  • ¿Es la línea shebang en la parte superior del script pip algo como #!/usr/bin/env python lugar de #!/usr/bin/python3.6 como debería ser?

  • ¿Es posible modificar el PATH de tu shell para que se use el python descargado?

  • ¿Es posible cambiar PYTHONPATH (creo que se agrega al valor predeterminado de sys.path dentro de python; búsquelo) para cargar el nuevo pip en lugar del antiguo pip?


Parece que al script get pip le faltaba el hecho de que más de 1 versión de python podría residir en una máquina. Así que agregué las siguientes líneas:

PY2 = sys.version_info[0] == 2 PY3 = sys.version_info[0] == 3

Por alguna razón faltaba esto. De todos modos esto funcionó para mí. gracias por su ayuda chicos.


Pruebe lo siguiente como una forma de evitar el problema hasta que se solucione

sudo python -m pip --version >> pip 10.0.1 from /usr/local/lib/python2.7/site-packages/pip (python 2.7) sudo python -m pip install numpy --upgrade >> Requirement already up-to-date: numpy in /usr/local/lib/python2.7/site-packages (1.14.2)


Realice los siguientes pasos para resolver el problema - (Ubuntu-Debian)

paso 1 - Ir al directorio

cd usr / bin /

y abra el archivo pip3 usando gedit o nano (a través de terminal).

Paso 2: cambiar from pip import main a from pip._internal import main

PD: si no tiene permiso para cambiar use el comando - sudo chmod 777 pip3 y guarde este archivo.

¡¡Espero que esto ayude!!


sudo chmod -R a+rx /usr/local/lib/python3.6/site-packages

Puede ver el problema allí mismo en su salida ls -l /usr/local/lib/python3.6/site-packages que su directorio pip solo puede leerlo el propietario, que es root.