【发布时间】:2013-04-27 23:02:00
【问题描述】:
假设我正在开发一个名为 mymodule 的 python 项目,并且我的目录结构如下:
mymodule/
README
setup.py
mymodule/
__init__.py
foo.py
bar.py
在开发过程中,我通常会使用包含所有源文件的内部 mymodule 文件夹。因此,如果我正在处理 foo 并想从 bar 导入一些东西,我会这样做:
from bar import myfunction
在开发过程中一切正常。当我想部署我的模块时会出现问题。如果我将模块安装到我正在处理的另一个项目中,我的代码将不再工作,因为需要像这样导入模块:
from mymodule.bar import myfunction
我可以更改我在mymodule 中的所有导入以使用这种格式,但这意味着该模块将不再在开发中工作。当我修复代码以进行部署时,我会破坏它以进行开发,反之亦然。
我做错了什么?
【问题讨论】:
-
你的路径到处都一样吗?听起来你可能有'。作为你路径的一部分在一个地方而不是另一个地方。
-
是的,路径是一样的。当然,我可以在我的模块代码中做一些 python 路径技巧,这样它就可以工作,但我觉得这是一个 hack。我确定有更好的方法,我只是不知道约定是什么。
标签: python path pip setuptools