Python 3:ImportError“没有名为Setuptools的模块”


283

我在使用Python 3安装软件包时遇到了麻烦。

我一直都使用来安装软件包setup.py install。但是现在,当我尝试安装ansicolors软件包时,我得到了:

importerror“没有名为Setuptools的模块”

我不知道该怎么办,因为过去我没有安装过setuptools。尽管如此,我仍然能够在setup.py install没有setuptools的情况下安装许多软件包。为什么现在应该获得setuptools?

我什至无法安装setuptools,因为我有Python 3.3,setuptools不支持Python 3。

为什么我的安装命令不再起作用?

Answers:


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
感谢这个帖子..帮我lot..Many人民正在advicing setuptools的,但它不可能在INSTAL分发py3.3..the像一个魅力的作品
小猪

22
我必须使用“ python3”安装它才能正常工作:sudo apt-get install python3-setuptools
D.Steinel 2014年

1
我安装了python3 python3-pip python3-setuptools,并且工作正常。谢谢。
warchantua

3
由于某些原因在Ubuntu 18.04中它不能与apt-get install python3-setuptools
loretoparisi

1
@loretoparisi我遇到了同样的问题,您找到了Ubuntu 18.04的解决方案吗?
斯科特,

91

编辑:官方setuptools dox页面

如果您从python.org安装了Python 2> = 2.7.9或Python 3> = 3.4,则已经具有pip和setuptools,但需要升级到最新版本:

在Linux或OS X上:

pip install -U pip setuptools 

在Windows上:

python -m pip install -U pip setuptools

因此,本文的其余部分可能已过时(例如,某些链接不起作用)。

分发 -是setuptools分支,可“提供Python 3支持”。Distribution(setuptools)+ pip的安装说明:

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

这里有类似的问题。

更新:分发似乎已过时,即已合并到Setuptools中:分发是Setuptools项目不推荐使用的分支。从Setuptools 0.7发行版开始,Setuptools和Distribute已合并,并且不再维护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),但接受的答案不适用。谢谢!
Fundead 2014年

严重的是,这家伙需要比他给予更多的荣誉。他只是保存了我的一天
Stephn_R 2014年

1
URL不再有效..请检查一下吗?
mebada

22

我在使用python-2.6的Oracle Linux 6.4上的virtualenv内执行此操作,因此基于apt的解决方案对我来说不是一个选择,python-2.7的想法也不对。我的解决方法是升级我由virtualenv安装的setuptools版本:

pip install --upgrade setuptools

之后,我能够将软件包安装到virtualenv中。我知道这个问题已经选择了答案,但我希望这个答案对我的情况有所帮助。


1
请注意,它遇到了“无法从不存在的文件中删除条目...”的问题,在上述命令中添加了--ignore-installed来解决该问题。
Kiki Jewell '18

10

pip uninstall setuptools

然后:

pip install setuptools

这对我有用,并解决了我的问题。


这对我有用!不知何故,我的setuptools是旧版本28.8。此卸载并重新安装迫使它更新到版本48。然后一切正常。
李约瑟·李

4

distribute软件包提供了与Python 3兼容的版本setuptoolshttp : //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 selenium 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包的工具pippip包括在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

几年前,我继承了在Django-1.2.3下运行的python(2.7.1)项目,现在被要求使用QR增强功能。遇到了同样的问题,没有找到pip或apt-get。所以我以完全不同但简单的方式解决了它。我/ bin / vi-ed setup.py,并将“ from setuptools import setup”这一行更改为:“ from distutils.core import setup”对我而言,所以我认为我应该将它发布给其他运行旧python的用户。问候,罗杰·维米尔

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.