虽然互联网上有很多帖子以及堆栈溢出的一些帖子,但我还是想问一下这个讨厌的python“导入”问题。
行。所以,开源代码组织通常是这样的:
项目/ SRC / model.py;
项目/测试/ testmodel.py
如果我将着名的__init__.py
放在项目目录中,也放在src /和test /子目录中,
然后将“from project.src import model”放入testmodel.py。
这是行不通的!继续告诉我,找不到名为“project.src”的模块!
如何在不改变代码结构的情况下解决问题?
答案 0 :(得分:3)
你不应该将项目目录添加到你的python路径,但它是父目录,例如想象一下设置
/home/user/develop/project/src/model
你将/ home / user / develop添加到PYTHONPATH
如果仍然无效,请确保您没有'project.py'insite project / src / model。
答案 1 :(得分:2)
确保python路径上的{strong>父目录为project/
,而不是项目目录。如果添加项目路径本身,像import project.src
这样的导入将查找project / project / src。
答案 2 :(得分:0)
项目所在的目录可能不在你的python路径中。
答案 3 :(得分:0)
您可以使用testmodel.py中的相对导入(假设Python 2.5+),例如:
from ..src import model
但是,如果您将testmodel.py作为主模块运行,则不起作用。