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

Posted

技术标签:

【中文标题】Python 3:ImportError“没有名为 Setuptools 的模块”【英文标题】:Python 3: ImportError "No Module named Setuptools" 【发布时间】:2013-01-03 18:58:32 【问题描述】:

我在 Python 3 中安装包时遇到问题。

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

importerror "No Module named Setuptools"

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

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

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

【问题讨论】:

【参考方案1】:

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...
[~]

【讨论】:

【参考方案2】:

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

在 Debian 上安装 setuptools

sudo apt-get install python3-setuptools

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

sudo apt-get install python-setuptools

【讨论】:

感谢这篇文章.. 帮助了我很多.. 很多人都在建议 setuptools 但它无法安装在 py3.3 中.. 分发就像一个魅力 我必须用“python3”安装它才能让它工作:sudo apt-get install python3-setuptools 我安装了python3 python3-pip python3-setuptools,它成功了。谢谢。 由于某些原因在 Ubuntu 18.04 中它不适用于 apt-get install python3-setuptools @loretoparisi 我也遇到了同样的问题,你找到 ubuntu 18.04 的解决方案了吗?【参考方案3】:

编辑:官方setuptools dox page:

如果您从以下位置安装了 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 - 是一个“提供 Python 3 支持”的 setuptools 分支。 Distribute(setuptools) + pip 的安装说明:

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

类似问题here。

更新:Distribute 似乎已过时,即合并到 Setuptools:Distribute 是 Setuptools 项目的已弃用分支。自 Setuptools 0.7 版本以来,Setuptools 和 Distribute 已合并,并且不再维护 Distribute。所有正在进行的工作都应参考 Setuptools 项目和 Setuptools 文档。

您可以尝试使用 setuptools pypi 页面上的instructions(我还没有测试过,抱歉:():

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

【讨论】:

非常感谢,我不确定这如何解决了我的问题,但确实如此。即刻!我在尝试安装分发时遇到严重问题。这必须以某种方式强制安装,因为sudo pip install distribute 不起作用。我的问题记录在***.com/questions/16846742/… 这适用于跨平台(Win),而接受的答案不适用。谢谢! 说真的,这家伙需要的功劳比他给的多。他刚刚拯救了我的一天 URLS 不再有效.. 你能检查一下吗? 这对我有用,而在安装某些软件包之后,接受的答案最终以损坏的 python 发行版结束。【参考方案4】:

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

pip install --upgrade setuptools

之后,我可以将软件包安装到 virtualenv 中。

【讨论】:

请注意,“无法从不存在的文件中删除条目...”将 --ignore-installed 添加到上述命令修复了该问题。【参考方案5】:

用于安装和管理 Python 包的PyPA recommended 工具是pippip 包含在 Python 3.4 (PEP 453) 中,但对于旧版本,这里是 how to install 它(在 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...

【讨论】:

【参考方案6】:

Windows 7:

我已经给出了完整的解决方案here for Python Selenium WebDriver:

    设置轻松安装(Windows - 简化)
      从“https://pypi.python.org/pypi/setuptools”下载 ez.setup.py (https://bootstrap.pypa.io/ez_setup.py) 将 ez.setup.py 移至 C:\Python27\ 打开 cmd 提示符 cd C:\Python27\ C:\Python27\python.exe ez.setup.py install

【讨论】:

【参考方案7】:

pip uninstall setuptools

然后:

pip install setuptools

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

【讨论】:

这对我有用!不知何故,我的 setuptools 是旧版本 28.8。这次卸载并重新安装迫使它更新到版本 48。然后一切正常。 就我而言,出于某种原因安装了两个不同版本的setuptools。当我尝试pip uninstall时发现它@ pip install --upgrade setuptools 也可以解决问题【参考方案8】:

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

我 /bin/vi-ed setup.py 并更改了行 “从 setuptools 导入设置” 进入: “从 distutils.core 导入设置”

【讨论】:

【参考方案9】:

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

python3 -m pip install --upgrade pip setuptools wheel

【讨论】:

【参考方案10】:

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

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

【讨论】:

这只是解决了我所有的生活问题。可以确认这行得通。比一月! 因为 pip 将 pyproject.toml(如 setup.py 和其他文件)作为项目配置的地方。【参考方案11】:

确保您运行的是最新版本的 pip

我尝试安装Ansible,但失败了

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

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

pip3 install -U pip

【讨论】:

通过使用“pip3 install -U pip”升级 pip 解决了这个问题。谢谢老哥! 在所有解决方案中,这是一个有效的解决方案。【参考方案12】:

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

python -m ensurepip

【讨论】:

【参考方案13】:

第一步#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 上

    打开开始搜索,输入“env”,然后选择“编辑系统环境变量” 点击“环境变量”按钮。 根据需要设置环境变量。 “新建”按钮添加了一个额外的变量。 选择“确定”关闭所有对话框。您的更改已保存!

【讨论】:

【参考方案14】:

pyproject.tomlsetup.py 位于同一目录中时,这可能是问题的原因。我重命名了那个文件,但并没有解决问题,所以我重新建立了原始文件名,并做了以下更改。

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

【讨论】:

这对我有用——我把头发扯掉了。谢谢。【参考方案15】:

我运行了sudo python setup.py build_ext -i,但以No module named setuptools 失败。

我用这个命令解决了:

<i>sudo apt-get install python-setuptools</i>

【讨论】:

【参考方案16】:

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

[build-system]
requires = ["poetry-core>=1.0.0", "setuptools"]
build-backend = "poetry.core.masonry.api"

【讨论】:

【参考方案17】:

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

python3 -m pip install scrapy --upgrade --force --user

【讨论】:

以上是关于Python 3:ImportError“没有名为 Setuptools 的模块”的主要内容,如果未能解决你的问题,请参考以下文章

ImportError:没有名为“urllib2”Python 3的模块[重复]

python 3.x ImportError:没有名为“cStringIO”的模块

PyInstaller 与 Python:3.10.0b4 - ImportError:没有名为 _bootlocale 的模块

ImportError:没有名为“cv2”Python3 的模块

ImportError:没有名为“twitter”的模块

ImportError:没有名为“xlrd”的模块