So aktualisieren Sie Python Setuptools> 12.2 unter Ubuntu 15.04

11

Das apt-Paket scheint 12.2 zu sein

Wenn ich sudo pip install -U setuptools die Version starte, scheint sie immer noch bei 12.2 zu stecken

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

[BEARBEITEN]

Ich habe gerade bemerkt, dass die Betriebssystemversion von setuptools nicht überschrieben wird:

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...

[/BEARBEITEN]

Stuart Axon
quelle
1
sudo pip install -U pip setuptools
AB
@AB Ich habe es gerade versucht und festgestellt, dass die Betriebssystemversion nicht überschrieben wird. Dies ist wahrscheinlich das Problem.
Stuart Axon

Antworten:

17
  1. Entfernen Sie die Repository-Version

    sudo apt-get remove python-setuptools
  2. Bei Bedarf piperneut installieren

    wget https://bootstrap.pypa.io/get-pip.py
    sudo -H python get-pip.py
    
  3. Installieren setuptoolsüberpip

    sudo -H pip install -U pip setuptools

Und jetzt starten Sie den Test erneut

% 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

Hinweis

Wenn Sie ein Paket installieren, das von beiden abhängt python-setuptoolsoder python-pipdiese Pakete zurückbringt, müssen Sie diesen Vorgang möglicherweise wiederholen!

AB
quelle
funktioniert auch auf Centos
Abhishek Dujari
2

Die von AB vorgeschlagene Lösung reicht möglicherweise nicht aus: In der neueren Version von setuptools pkg_resourceshandelt es sich um ein Paket, während es zuvor nur ein einziges Modul war.

Aktualisieren der setuptoolsin der beschriebenen Weise wird eine abgestandene verlassen pkg_resources.py{,c}um , was zu dem folgenden Fehler führen kann beim Import setuptools:

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

Gehen Sie wie folgt vor, um es zu entfernen:

  1. Finden Sie heraus, wo sich das veraltete pkg_resourcesModul befindet:

    $ python -c 'import pkg_resources; print(pkg_resources.__file__)'
    /usr/lib/python2.7/dist-packages/pkg_resources.pyc
    
  2. Entfernen Sie diese Datei und ihre .pyDatei:

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

Warnung

Diese Datei wurde möglicherweise über das python-pkg-resourcesPaket installiert . Wenn Sie dieses Paket aktualisieren oder neu installieren, wird das veraltete Modul wiederhergestellt! Beachten Sie auch, dass Sie mit einer Datei herumspielen, die von gesteuert werden soll apt.

kynan
quelle
1
Ich akzeptierte die AB-Antwort, da sie den größten Teil des Weges dorthin zurücklegte, aber wenn ich beide akzeptieren könnte, würde ich es tun. - Ich hatte noch keine Gelegenheit, dies zu versuchen, da ich Ubuntu seitdem aktualisiert habe und ein wenig misstrauisch bin, wenn es darum geht, mit Setuptools herumzuspielen. Ich werde dies wahrscheinlich in einer virtuellen Maschine versuchen müssen, um zu sehen, was passiert.
Stuart Axon