384

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

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

importerror "No Module named Setuptools"

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

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

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

4

18 回答 18

669

您的setup.py文件需要setuptools. 一些 Python 包曾经distutils用于分发,但现在大多数都使用setuptools更完整的包。是关于它们之间差异的问题。

setuptools在 Debian 上安装:

sudo apt-get install python3-setuptools

对于旧版本的 Python (Python 2.x):

sudo apt-get install python-setuptools
于 2013-01-20T16:27:51.347 回答
151

编辑:官方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

因此,这篇文章与Distribute相关的其余部分已过时(例如,某些链接不起作用)。

编辑 2022-02-04

从 Python 3.10 Distutils 已弃用,将在 Python 3.12 中删除- 使用setuptools

不推荐使用整个 distutils 包,将在 Python 3.12 中删除。它用于指定包构建的功能已经完全被第三方包 setuptools 和包装取代......

分发(已弃用)

Distribute - 是一个 setuptools fork,它“提供 Python 3 支持”。分发(setuptools)+ pip的安装说明:

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

类似的问题在这里

更新:Distribute似乎已过时,即合并到 Setuptools 中:Distribute 是 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
于 2013-05-12T19:20:45.637 回答
41

确保您正在运行最新版本的 pip

我尝试安装Ansible,但失败了

ModuleNotFoundError:没有名为“setuptools_rust”的模块

python3-setuptools已经到位,所以升级pip解决了它。

pip3 install -U pip
于 2021-02-09T09:37:23.010 回答
34

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

pip install --upgrade setuptools

之后,我能够将软件包安装到 virtualenv 中。

于 2013-11-04T22:01:47.290 回答
28

对我有用的解决方案是升级我的 setuptools:

python3 -m pip install --upgrade pip setuptools wheel
于 2020-07-26T18:17:22.613 回答
26

对于由于不同原因而遇到相同问题的其他人:即使 apyproject.toml与 位于同一目录中,也会发生这种情况setup.py,即使setuptools可用时也是如此。

删除pyproject.toml为我解决了这个问题。

于 2021-01-19T08:16:02.207 回答
15

pip uninstall setuptools

进而:

pip install setuptools

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

于 2016-03-04T09:04:47.600 回答
11

第一步 #1
你必须安装setuptools

在 Linux 上:

pip install -U pip setuptools

在 Mac 操作系统上:

pip install -U pip setuptools

在 Windows 上:

python -m pip install -U pip setuptools

第二步#2

确保您已使其可访问(使其在环境变量中可用)

在 Linux 上

export PATH="INSTALLATIONDIRECTORY:$PATH"

在 Mac 操作系统上

对不起,我不知道。

在 Windows 上

  1. 打开开始搜索,输入“env”,然后选择“编辑系统环境变量”</li>
  2. 单击“环境变量”按钮。
  3. 根据需要设置环境变量。新建按钮添加了一个附加变量。
  4. 选择“确定”关闭所有对话框。您的更改已保存!
于 2021-05-10T09:15:44.693 回答
10

如果 与pyproject.toml位于同一目录中setup.py,则可能是问题的原因。我重命名了那个文件,但它并没有解决问题,所以我重新建立了原始文件名,并进行了以下更改。

在 [build-system] 部分下,我将“setuptools”添加到了 requires= 列表中,并且它起作用了。

于 2021-07-05T05:23:56.797 回答
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...
[~]
于 2013-01-20T16:25:57.923 回答
3

Windows 7的:

我在这里为 Python Selenium WebDriver提供了一个完整的解决方案:

  1. 设置轻松安装(Windows - 简化)
    1. 从“https://pypi.python.org/pypi/setuptools”下载 ez.setup.py ( https://bootstrap.pypa.io/ez_setup.py )
    2. 将 ez.setup.py 移至C:\Python27\
    3. 打开 cmd 提示符
    4. cd C:\Python27\
    5. C:\Python27\python.exe ez.setup.py install
于 2015-05-30T06:10:25.693 回答
3

我跑了sudo python setup.py build_ext -i,它失败了No module named setuptools

我用这个命令解决了它:

<i>sudo apt-get install python-setuptools</i>
于 2021-09-13T09:00:40.437 回答
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...
于 2014-07-14T09:40:30.603 回答
1

几年前,我继承了一个在 Django-1.2.3 下运行的 Python (2.7.1) 项目,现在被要求通过 QR 可能性来增强它。我遇到了同样的问题,也没有找到pipapt-get。所以我以一种完全不同但简单的方式解决了它。

我 /bin/vi-ed setup.py 并将“from setuptools import setup”行更改为:“from distutils.core import setup”

于 2019-08-29T09:34:11.720 回答
1

如果pip未安装,例如如果它来自Deadsnakes PPA或 Docker 环境,则修复此错误的最佳方法是通过运行引导

python -m ensurepip
于 2021-03-23T16:26:16.830 回答
1

当我的 pip requirements.txt 文件包含一个使用诗歌构建的可编辑库并包含一个 pyproject.toml 文件时,我遇到了这个问题。按照setuptools的文档,我的解决方案是将 setuptools 添加到 pyproject.toml 文件中的构建系统要求中,如下所示:

[build-system]
requires = ["poetry-core>=1.0.0", "setuptools"]
build-backend = "poetry.core.masonry.api"
于 2021-10-07T15:57:47.573 回答
0

如果您仍然发现此问题,请尝试以下操作:

python3 -m pip install scrapy --upgrade --force --user
于 2021-12-16T17:59:39.107 回答
0

在尝试安装 socketIO 时,我遇到了同样的问题。在我的系统(Windows 11)中,setupTools 出现了两次。在C:\Program Files\Python310\Lib\site-packages\和 在C:\Users\user\AppData\Roaming\Python\Python310\site-packages\ 不得不卸载其中之一。

于 2022-02-17T14:31:14.673 回答