【问题标题】:Package installed in conda but module not found. How is that possible?软件包安装在 conda 中,但未找到模块。这怎么可能?
【发布时间】:2021-05-28 06:49:41
【问题描述】:

似乎很多人都在为这个问题而苦恼,但我找不到任何有效的答案。 我认为我做的一切都是正确的,但它仍然不起作用。 我已经构建了自己的包并将其安装在我的 conda 环境中。 当我执行conda list 时,它会出现在列表的最后(我称之为 zzpackagerps):

...
zlib                      1.2.11            h62dcd97_1010    conda-forge
zstd                      1.4.9                h6255e5f_0    conda-forge
zzpackagerps              0.0.1                     dev_0    <develop>

现在,当我在这个环境 (py39) 中运行 python 并尝试导入包时,我得到了臭名昭著的 ModuleNotFoundError:

(py39) s:\Sources>python
Python 3.9.4 | packaged by conda-forge | (default, May 10 2021, 22:10:34) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import zzpackagerps
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'zzpackagerps'
>>>

这怎么可能?或者,更重要的是,我该如何让它发挥作用?
(顺便说一句:在 Windows 上运行)

【问题讨论】:

  • 您确定这是模块名称吗?包名和模块名不一定一致。
  • 很好的建议,就是这样!脚本的名称(模块)与包名称不同。导入模块有效。我认为您可以将您的回复更改为答复。

标签: python conda modulenotfounderror


【解决方案1】:

一个可能的问题是包名可能与模块名不同。如果您找到安装包的site-packages,您可以尝试查看文件夹结构以及定义了__init__.py 文件的位置。

【讨论】:

    【解决方案2】:

    无法评论,所以在这里问。

    您是否以 root 身份安装了该软件包?如果是,请执行以下操作:

    sudo chmod -R a+rX /home/deeplearning/anaconda3/envs/
    

    如果不是,则可能是潜在路径问题:

    您的 python 命令可能引用了与活动 conda 环境文件夹中的 python 不同的 python。通过在终端 which condawhich python 中运行来检查这一点。

    或者,重新安装 conda。

    【讨论】:

    • 不,不是以 root 身份运行。事实上,在 Windows 上运行(我将编辑我的问题以提及这一点,抱歉)。但没有管理员权限。
    • 您是否仔细检查了路径?
    • 路径应该是什么?在我看来,激活环境应该确保可以找到所有已安装的软件包。但为了记录,在 sys.path 中没有明确引用我的包安装所在的文件夹。
    • 只需执行 `where python` 并检查 python 路径是否在您的 env 路径中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多