Python 3: ImportError «Нет модуля с именем Setuptools»


284

У меня проблемы с установкой пакетов в Python 3.

Я всегда устанавливал пакеты с setup.py install. Но теперь, когда я пытаюсь установить пакет ansicolors, я получаю:

importerror "Нет модуля с именем Setuptools"

Я понятия не имею, что делать, потому что у меня не было setuptools, установленного в прошлом. Тем не менее, я смог установить много пакетов setup.py installбез setuptools. Почему я должен получить setuptools сейчас?

Я даже не могу установить setuptools, потому что у меня есть Python 3.3, а setuptools не поддерживает Python 3.

Почему моя команда установки больше не работает?

Ответы:


534

Ваш setup.pyфайл нуждается setuptools. Некоторые пакеты Python использовались distutilsдля распространения, но большинство сейчас используют setuptoolsболее полный пакет. Вот вопрос о различиях между ними.

Чтобы установить setuptoolsна Debian:

sudo apt-get install python3-setuptools

Для более старой версии Python (Python 2.x):

sudo apt-get install python-setuptools

1
спасибо за этот пост .. мне очень помогли .. Многие люди советуют setuptools, но его невозможно установить в py3.3 .. дистрибутив работает как шарм
piggy

22
я должен был установить его с "python3", чтобы заставить его работать:sudo apt-get install python3-setuptools
D.Steinel

1
Я установил, python3 python3-pip python3-setuptoolsи это сработало. Спасибо.
Warchantua

3
По какой-то причине в Ubuntu 18.04 он не работает apt-get install python3-setuptools.
Лоретопариси

1
@loretoparisi У меня такая же проблема, вы нашли решение для Ubuntu 18.04?
Скотт

92

РЕДАКТИРОВАТЬ: Официальная страница dox setuptools :

Если у вас установлен Python 2> = 2.7.9 или Python 3> = 3.4 с python.org, у вас уже есть pip и setuptools, но вам нужно будет обновить его до последней версии:

В Linux или OS X:

pip install -U pip setuptools 

В Windows:

python -m pip install -U pip setuptools

Поэтому остальная часть этого поста, вероятно, устарела (например, некоторые ссылки не работают).

Distribute - это ветка setuptools, которая "предлагает поддержку Python 3". Инструкция по установке для дистрибутива (setuptools) + pip:

curl -O http://python-distribute.org/distribute_setup.py
python distribute_setup.py
easy_install pip

Подобная проблема здесь .

ОБНОВЛЕНИЕ: Распространение, кажется, устарело, то есть объединено в Setuptools: Распространение является устаревшим ответвлением проекта Setuptools. Начиная с выпуска Setuptools 0.7, Setuptools и Распространение слились, и Распределение больше не поддерживается. Все текущие усилия должны ссылаться на проект Setuptools и документацию Setuptools.

Вы можете попробовать с инструкциями, найденными на странице pyto setuptools (я не проверял это, извините :():

wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python
easy_install pip

1
Большое спасибо, я не уверен, как это решило мою проблему, но это помогло. мгновенно! У меня были серьезные проблемы при попытке установить дистрибутив. это, должно быть, каким-то образом заставило установку, поскольку sudo pip install distributeне будет работать. Мои проблемы задокументированы на stackoverflow.com/questions/16846742/…
Завершить

1
Это работает кроссплатформенно (Win), тогда как принятый ответ не применим. Спасибо!
fundead

Серьезно, этому парню нужно больше кредита, чем ему дали. Он только что спас мой день
Stephn_R

1
URL больше не действительны .. не могли бы вы проверить?
Mebada

22

Я делал это в virtualenv на Oracle Linux 6.4 с использованием python-2.6, поэтому решения на основе apt не были для меня опцией и не были идеями для python-2.7. Мое исправление состояло в том, чтобы обновить мою версию setuptools, которая была установлена ​​virtualenv:

pip install --upgrade setuptools

После этого я смог установить пакеты в virtualenv. Я знаю, что на этот вопрос уже был выбран ответ, но я надеюсь, что этот ответ поможет другим в моей ситуации.


1
Обратите внимание, что возникла проблема «Невозможно удалить записи из несуществующего файла ...». Добавление --ignore-install к вышеуказанной команде исправило это.
Кики Джуэлл

10

pip uninstall setuptools

а потом:

pip install setuptools

Это работает для меня и исправить мою проблему.


Это сработало для меня! Каким-то образом мои setuptools были старше версии 28.8. Это удаление и повторная установка заставили его обновить до версии 48. И тогда все работало нормально.
Джозеф Ли

4

distributeПакет предоставляет 3-совместимую версию Python из setuptools: http://pypi.python.org/pypi/distribute

Также используйте pipдля установки модулей. Он автоматически находит зависимости и устанавливает их для вас.

У меня с вашим пакетом все работает отлично:

[~] pip --version                                                              
pip 1.2.1 from /usr/lib/python3.3/site-packages (python 3.3)
[~] sudo pip install ansicolors                                                
Downloading/unpacking ansicolors
  Downloading ansicolors-1.0.2.tar.gz
  Running setup.py egg_info for package ansicolors

Installing collected packages: ansicolors
  Running setup.py install for ansicolors

Successfully installed ansicolors
Cleaning up...
[~]

3

Windows 7:

Я дал полное решение здесь для веб-драйвера Python Selen

1. Setup easy install (windows - simplified)
    a. download ez.setup.py (https://bootstrap.pypa.io/ez_setup.py) from 'https://pypi.python.org/pypi/setuptools'
    b. move ez.setup.py to C:\Python27\
    c. open cmd prompt
    d. cd C:\Python27\
    e. C:\Python27\python.exe ez.setup.py install

1

PyPA рекомендуется инструмент для установки и управления пакетами Python является pip. pipвключен в Python 3.4 ( PEP 453 ), но для более старых версий вот как его установить (в Windows):

Скачать https://bootstrap.pypa.io/get-pip.py

>c:\Python33\python.exe get-pip.py
Downloading/unpacking pip
Downloading/unpacking setuptools
Installing collected packages: pip, setuptools
Successfully installed pip setuptools
Cleaning up...

>c:\Python33\Scripts\pip.exe install pymysql
Downloading/unpacking pymysql
Installing collected packages: pymysql
Successfully installed pymysql
Cleaning up...

1

Несколько лет назад я унаследовал проект Python (2.7.1), работающий под Django-1.2.3, и теперь меня попросили улучшить его с помощью возможностей QR. Получил ту же проблему и не нашел ни pip, ни apt-get. Так что я решил это совершенно другим, но простым способом. Я / bin / vi-редактировал файл setup.py и изменил строку «из настройки импорта setuptools» на: «из настройки импорта distutils.core». Это сделано для меня, поэтому я решил опубликовать это для других пользователей, использующих старые питоны. , С уважением, Роджер Вермейр

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.