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 工具是pip
。 pip
包含在 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 可能性来增强它。我遇到了同样的问题,也没有找到 pip 或 apt-get。所以我用一种完全不同但简单的方法解决了它。
我 /bin/vi-ed setup.py 并更改了行 “从 setuptools 导入设置” 进入: “从 distutils.core 导入设置”
【讨论】:
【参考方案9】:对我有用的解决方案是升级我的 setuptools:
python3 -m pip install --upgrade pip setuptools wheel
【讨论】:
【参考方案10】:对于由于不同原因而遇到相同问题的其他人:当pyproject.toml
与setup.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.toml
与setup.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 的模块