【问题标题】:"No module named setuptools" error, despite it being installed“没有名为 setuptools 的模块”错误,尽管它已安装
【发布时间】:2020-07-07 18:49:22
【问题描述】:

我正在尝试(但失败)运行 setup.py 文件来安装 python 包。我试图安装这个包的机器运行的是 Ubuntu 16.04.6 LTS,我对 linux 操作系统不是很熟悉,所以也许我忽略了一些东西。

当我运行 setup.py 时,我遇到以下错误消息。

  File "setup.py", line 3, in <module>
    from setuptools import setup, Extension
ImportError: No module named setuptools

但是,我检查了我的 python 安装,它似乎安装了 setuptools,因为我可以正确导入包而没有错误。

(bu) kmao:~$ python
Python 3.6.9 |Anaconda, Inc.| (default, Jul 30 2019, 19:07:31)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from setuptools import setup, Extension
>>>

为什么我可以在我的 python 终端中导入 setuptools,但在运行 setup.py 脚本时却不能?我该如何解决这个问题?

注意:setup.py 是从包含以下行的脚本 setup.sh 调用的:

python setup.py clean
python setup.py build_ext
python setup.py build_py -c
python setup.py bdist bdist_wheel

【问题讨论】:

  • 你运行setup.py的具体情况如何?
  • @chepner 通过包中包含的 setup.sh 脚本。它包含以下四行文本: python setup.py clean python setup.py build_ext python setup.py build_py -c python setup.py bdist bdist_wheel
  • 提示符中的bu 是什么?您是否使用了您的脚本不是的虚拟环境?
  • anaconda 发行版安装在虚拟环境中。我也想为这个虚拟环境安装包。

标签: python python-3.x setuptools


【解决方案1】:

setup.sh 脚本在新的 shell 环境中执行,因此它可能使用您的默认 Python 解释器而不是虚拟 Python 环境中的 Python 解释器。显然,没有为默认解释器安装 setuptools(注意:这可能需要 root 访问权限)。

如果 shell 脚本只包含你上面提到的四行,你可以简单地通过输入任何一个来“获取”脚本

source setup.sh

. setup.sh

请注意,如果脚本还包含其他代码,则此解决方案可能不起作用。

通过“采购”脚本,所有命令都在同一个 shell 中执行(即无需启动新的 shell),因此可以确保使用虚拟环境中的 Python 解释器。

【讨论】:

    猜你喜欢
    • 2020-05-14
    • 1970-01-01
    • 2018-05-24
    • 2017-03-25
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    相关资源
    最近更新 更多