Python 3: ImportError "Немає модуля з іменем Setuptools"


283

У мене виникають проблеми з установкою пакетів в Python 3.

Я завжди встановлював пакунки з setup.py install. Але тепер, коли я намагаюся встановити пакет ансіколорів, я отримую:

importterror "Немає модуля з назвою Setuptools"

Я поняття не маю, що робити, тому що в мене раніше не було встановлено setuptools. І все-таки мені вдалося встановити безліч пакетів setup.py installбез налаштування. Чому мені зараз потрібно встановити setuptools?

Я навіть не можу встановити setuptools, оскільки в мене є Python 3.3, а setuptools не підтримує Python 3.

Чому моя команда встановлення більше не працює?

Відповіді:


532

Ваш 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..розповсюджувати працює як шарм
скарбничка

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

1
@loretoparisi У мене ця сама проблема, ти знайшов рішення для ubuntu 18.04?
Скотт

91

EDIT: Офіційна сторінка 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

Тому решта цієї публікації, ймовірно, застаріла (наприклад, деякі посилання не працюють).

Розподілити - це Setuptools вилка , яка «пропонує підтримку Python 3». Інструкція з установки для дистрибутива (setuptools) + pip:

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

Аналогічне питання тут .

UPDATE: Розподілити здається застарілим, тобто об'єднані в Setuptools: Розподілити є застарілим форк проекту Setuptools. З моменту випуску програми Setuptools 0.7 Setuptools та Distribute об'єдналися, а розподіл більше не підтримується. Усі постійні зусилля повинні посилатися на проект Setuptools та документацію Setuptools.

Ви можете спробувати з інструкціями, знайденими на сторінці setuptools pypi (я цього не перевіряв, вибачте :():

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

1
Це працює між платформою (Win), тоді як прийнята відповідь не застосовується. Дякую!
неділя

Якщо серйозно, цей хлопець потребує більше кредиту, ніж дано. Він щойно врятував мені день
Stephn_R

1
URL-адреси більше не дійсні .. Ви можете, будь ласка, перевірити?
mebada

22

Я робив це всередині virtualenv на Oracle Linux 6.4, використовуючи python-2.6, тому рішення, засновані на підходах, не були для мене варіантом, і не були ідеями python-2.7. Виправленням було оновлення моєї версії setuptools, встановленої virtualenv:

pip install --upgrade setuptools

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


1
Зауважте, у нього виникли проблеми "Неможливо видалити записи з неіснуючого файлу ..." Додавання --ignore-встановленої до вищезазначеної команди виправлено це.
Кікі Дживелл

10

pip uninstall setuptools

і потім:

pip install setuptools

Це працює для мене і виправляє мою проблему.


Це працювало для мене! Якось мій setuptools був старшою версією 28.8. Це видалення та перевстановлення змусило його оновити до версії 48. І тоді все працювало нормально.
Джозеф Лі

4

У distributeпакеті надається версія, сумісна з Python 3 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:

Я дав повне рішення тут для пітона селеном WebDriver

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

0

Кілька років тому я успадкував проект пітона (2.7.1), який працює під Django-1.2.3, і тепер мені запропонували покращити його за допомогою QR-можливостей. Отримав ту саму проблему і не знайшов pip чи apt-get. Тож я вирішив це зовсім іншим, але простим способом. Я / bin / vi-ed setup.py і змінив рядок "з налаштування імпорту setuptools імпорту" на: "з налаштування імпорту distutils.core" Це зробило це для мене, тому я подумав, що слід опублікувати це для інших користувачів, які працюють зі старими пітонами . З повагою, Роджер Вермер

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.