как обновить python setuptools> 12.2 в Ubuntu 15.04

11

Пакет apt, кажется, 12.2

Если я запускаю sudo pip install -U setuptools версию, кажется, все еще застрял в 12.2

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

[РЕДАКТИРОВАТЬ]

Просто заметил, что это не перезапишет версию ОС 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...

[/РЕДАКТИРОВАТЬ]

Стюарт Аксон
источник
1
sudo pip install -U pip setuptools
AB
@AB только что попробовал это и заметил, что это не перезапишет версию ОС ... это, вероятно, проблема ..
Стюарт Аксон

Ответы:

18
  1. Удалить версию репозитория

    sudo apt-get remove python-setuptools
  2. При необходимости установите pipзаново

    wget https://bootstrap.pypa.io/get-pip.py
    sudo -H python get-pip.py
  3. Установить setuptoolsчерезpip

    sudo -H pip install -U pip setuptools

А теперь, начните тестировать снова

% 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

Заметка

Установка любого пакета, который зависит от того python-setuptoolsили другого python-pip, вернет эти пакеты, поэтому вам, возможно, придется повторить эту процедуру!

AB
источник
работает и над
сентосами
2

Решение, предложенное AB, может быть не совсем достаточным: в последней версии setuptools pkg_resourcesэто пакет, тогда как ранее это был всего лишь один модуль.

Обновление setuptoolsописанного способа будет оставить несвежую pkg_resources.py{,c}вокруг , что может привести к следующей ошибке при импорте setuptools:

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

Чтобы удалить его, сделайте следующее:

  1. Узнайте, где находится устаревший pkg_resourcesмодуль:

    $ python -c 'import pkg_resources; print(pkg_resources.__file__)'
    /usr/lib/python2.7/dist-packages/pkg_resources.pyc
  2. Удалить этот файл и его .pyфайл:

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

Предупреждение

Этот файл мог быть установлен через python-pkg-resourcesпакет. Поэтому обновление или переустановка этого пакета приведет к восстановлению устаревшего модуля! Также имейте в виду, что вы возитесь с файлом, который должен контролироваться apt.

kynan
источник
1
Я принял ответ АБ, так как он был в большинстве случаев, но если бы я мог принять и то, и другое, я бы так и сделал. - У меня еще не было возможности попробовать это, так как с тех пор я обновил Ubuntu и немного опасаюсь связываться с ним с помощью setuptools, мне, вероятно, придется попробовать это на виртуальной машине, чтобы посмотреть, что произойдет.
Стюарт Аксон