cómo actualizar las herramientas de configuración de Python> 12.2 en ubuntu 15.04

11

El paquete apt parece ser 12.2

Si ejecuto sudo pip install -U setuptools la versión parece estar atascada en 12.2

$ python
>>> import pkg_resources
>>> r = pkg_resources.require(["setuptools"])[0]
>>> print("setuptools version: %s" % r.version)
setuptools version: 12.2

[EDITAR]

Acabo de notar que no sobrescribirá la versión del sistema operativo de setuptools:

Downloading/unpacking pip from https://pypi.python.org/packages/py2.py3/p/pip/pip-7.1.2-py2.py3-none-any.whl#md5=5ff9fec0be479e4e36df467556deed4d
  Downloading pip-7.1.2-py2.py3-none-any.whl (1.1MB): 1.1MB downloaded
Downloading/unpacking setuptools from https://pypi.python.org/packages/3.4/s/setuptools/setuptools-18.3.2-py2.py3-none-any.whl#md5=58c1e15fe0c124ab0880a2691f232434
  Downloading setuptools-18.3.2-py2.py3-none-any.whl (462kB): 462kB downloaded
Installing collected packages: pip, setuptools
  Found existing installation: pip 1.5.6
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, owned by OS
  Found existing installation: setuptools 12.2
    Not uninstalling setuptools at /usr/lib/python2.7/dist-packages, owned by OS
Successfully installed pip setuptools
Cleaning up...

[/EDITAR]

Stuart Axon
fuente
1
sudo pip install -U pip setuptools
AB
@AB Acabo de probar esto y noté que no sobrescribirá la versión del sistema operativo ... este es probablemente el problema ...
Stuart Axon

Respuestas:

18
  1. Eliminar la versión del repositorio

    sudo apt-get remove python-setuptools
  2. Si es necesario, pipvuelva a instalar

    wget https://bootstrap.pypa.io/get-pip.py
    sudo -H python get-pip.py
    
  3. Instalar a setuptoolstravés depip

    sudo -H pip install -U pip setuptools

Y ahora, comienza a probar de nuevo

% python
Python 2.7.9 (default, Apr  2 2015, 15:33:21) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pkg_resources
>>> r = pkg_resources.require(["setuptools"])[0]
>>> print("setuptools version: %s" % r.version)
setuptools version: 18.3.2

Nota

La instalación de cualquier paquete que dependa de una python-setuptoolso python-piptraerá estos paquetes hacia atrás, por lo que es posible que tenga que repetir este procedimiento!

AB
fuente
también funciona en centos
Abhishek Dujari
2

La solución propuesta por AB puede no ser suficiente: en la versión reciente de setuptools, pkg_resourceses un paquete, mientras que anteriormente era solo un módulo.

La actualización setuptoolsde la manera descrita se deje un rancio pkg_resources.py{,c}alrededor , lo que puede conducir al siguiente error al importar setuptools:

AttributeError: 'module' object has no attribute 'packaging'

Para eliminarlo, haga lo siguiente:

  1. Averigüe dónde se encuentra el pkg_resourcesmódulo obsoleto :

    $ python -c 'import pkg_resources; print(pkg_resources.__file__)'
    /usr/lib/python2.7/dist-packages/pkg_resources.pyc
    
  2. Elimine este archivo y su .pyarchivo:

    $ sudo rm /usr/lib/python2.7/dist-packages/pkg_resources.py*

Advertencia

Este archivo podría haberse instalado a través del python-pkg-resourcespaquete. ¡Por lo tanto, actualizar o reinstalar este paquete restablecerá el módulo obsoleto! También tenga en cuenta que está jugando con un archivo que se supone que está controlado por apt.

kynan
fuente
1
Acepté la respuesta AB ya que era la mayor parte del camino, pero si pudiera aceptar ambas, lo haría. - Todavía no he tenido la oportunidad de probar esto, ya que desde entonces actualicé Ubuntu y estoy un poco desconfiado sobre jugar con las herramientas de configuración, probablemente necesito probar esto en una máquina virtual para ver qué sucede.
Stuart Axon