python - available - pip falla con AttributeError: el objeto ''módulo'' no tiene atributo ''envuelve''
python install pip (7)
Está bien, después de probar todas las soluciones que podría buscar en Google sin ningún resultado a la vista. Intenté arriesgarme y jugar un poco. Esta podría no ser la solución más segura pero funcionó bien para mí. Al ver que python get-pip.py
resultó en:
Requirement already up-to-date: pip in /usr/lib/python2.7/site-packages
incluso cuando tuve pip desinstalado. Fui a /usr/lib/python2.7/site-packages/
para encontrar dos directorios de pip
: pip
y pip-6.0.8.dist-info
. Se eliminaron los dos inmediatamente. Luego probé python get-pip.py
nuevo. Voila! funcionó.
Estoy en Fedora. Recientemente actualicé mi sistema de F20 a F21. Pip funcionaba bien en F20, pero después de la actualización a F21, algo debe haber salido mal. Pip dejó de funcionar, cada vez que ingreso el comando pip <anything>
se produce el error siguiente:
Traceback (most recent call last):
File "/usr/bin/pip", line 7, in <module>
from pip import main
File "/usr/lib/python2.7/site-packages/pip/__init__.py", line 12, in <module>
from pip.commands import commands, get_summaries, get_similar_commands
File "/usr/lib/python2.7/site-packages/pip/commands/__init__.py", line 6, in <module>
from pip.commands.bundle import BundleCommand
File "/usr/lib/python2.7/site-packages/pip/commands/bundle.py", line 6, in <module>
from pip.commands.install import InstallCommand
File "/usr/lib/python2.7/site-packages/pip/commands/install.py", line 5, in <module>
from pip.req import InstallRequirement, RequirementSet, parse_requirements
File "/usr/lib/python2.7/site-packages/pip/req/__init__.py", line 3, in <module>
from .req_install import InstallRequirement
File "/usr/lib/python2.7/site-packages/pip/req/req_install.py", line 31, in <module>
from pip.utils import (
File "/usr/lib/python2.7/site-packages/pip/utils/__init__.py", line 59, in <module>
def rmtree(dir, ignore_errors=False):
File "/usr/lib/python2.7/site-packages/pip/_vendor/retrying.py", line 47, in wrap
@six.wraps(f)
AttributeError: ''module'' object has no attribute ''wraps''
Esto funcionó:
mv /usr/lib/python2.7/site-packages/pip* ./
yum reinstall python-pip
Esto ocurrió en mi situación después de haber movido el directorio virtualenv (junto con el proyecto) a una nueva ubicación, lo que claramente no debería haber hecho ya que (leyendo el documento ahora) el manual indica claramente que se incluyen algunas rutas codificadas [completas] en el ambiente.
Eliminar los directorios bin /, include /, lib / y lib64 / y luego volver a crear el virtualenv solucionó el problema por mí.
Busqué la búsqueda y la solución de las rutas completas en el entorno, pero arreglarlas en todas partes (además de en los archivos bin / active *) no me pareció trivial.
Estoy en Mac OS, pero pude arreglar este error haciendo mkvirtualenv --system-site-packages XXXX
en lugar de mkvirtualenv XXXX
.
La ejecución de pip install -r requirements.txt
en el entorno virtual me estaba dando AttributeError: ''module'' object has no attribute ''wraps''
antes y ya no lo hace.
Me ha pasado en Windows con la instalación nueva de Python activestate. Acabo de usar easy_install para degradar el pip
easy_install pip==7.1.2
y luego estaba funcionando ...
Si vuelve a crear un entorno virtual que contiene una versión pip diferente , puede ejecutarse en ese escenario:
# virtualenv /tmp/env
New python executable in /tmp/env/bin/python
Installing setuptools, pip...done.
# /tmp/env/bin/pip install --upgrade pip
(...)
Found existing installation: pip 1.5.6
Uninstalling pip:
Successfully uninstalled pip
Successfully installed pip
# virtualenv /tmp/env
New python executable in /tmp/env/bin/python
Installing setuptools, pip...done.
# /tmp/env/bin/pip install --upgrade pip
(...)
AttributeError: ''module'' object has no attribute ''wraps''
El entorno ahora contiene los fragmentos de pip de la instalación anterior. Para arreglarlo puedes usar la opción --clean :
# virtualenv --clear /tmp/env
Deleting tree /tmp/env/lib/python2.7
Not deleting /tmp/env/bin
New python executable in /tmp/env/bin/python
Installing setuptools, pip...done.
Luego, virtualenv eliminará la ruta antes de instalar el nuevo entorno.
Si desea tener un comportamiento de actualización, puede omitir virtualenv si (por ejemplo, bin / python) está presente.
# [ ! -x /tmp/env/bin/python ] && virtualenv /tmp/env
Utilice easy_install para instalar una versión anterior de pip
easy_install pip==7.0.2
Luego use pip para instalar la versión de la que vino, en mi caso era 9.0.1
pip install pip==9.0.1