为了账号安全,请及时绑定邮箱和手机立即绑定

没有名为“code.X”的模块;代码不是包,Python

没有名为“code.X”的模块;代码不是包,Python

慕桂英546537 2022-10-18 14:53:13
我有以下项目结构:Project|---code|  ||  ---__init__.py|  ---X.py|  ---Y.py|  ---Z.py|----resources    |    ---__init__.py    ---csv/         |         --- file1.csv         --- file2.csv         ---__init__.py 在 X.py 和 Y.py 内部我有一个导入from code.Z import Z(其中 Z 是内部类的名称,也是一个文件名。当我想运行 Z.py 时,它给出:`ModuleNotFoundError: No module named 'code.Z '; 'code' 不是一个包。怎么了?
查看完整描述

3 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

这里有两个可能的问题:

  1. 确保项目在 python 路径上,否则找不到代码

  2. code 是 python 标准库中的一个内部模块,可能会导致名称冲突,请参阅https://docs.python.org/2/library/code.html。为避免这种情况,请将文件夹名称更改为 src,或除代码之外的任何其他名称。


查看完整回答
反对 回复 2022-10-18
?
HUX布斯

TA贡献1876条经验 获得超6个赞

这就是相对进口的用途。

from . import Z # use the class as Z.Z
from .Z import Z # use the class as Z

整个系统的StackOverflow详解


查看完整回答
反对 回复 2022-10-18
?
呼如林

TA贡献1798条经验 获得超3个赞

你有没有尝试过:


# Importing the module:

import Z


# Calling the class in the module like this:

my_object = Z.Z()

您甚至不需要对文件夹“code”的引用,因为您的 Z.py 模块与您从中调用的文件位于同一文件夹中...


Python 无法将“代码”文件夹识别为包可能与项目不在路径上有关,但我不太确定此处的详细信息如何工作......


查看完整回答
反对 回复 2022-10-18
  • 3 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信