假设我正在处理名为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
中的所有导入以使用此格式,但这意味着该模块将不再适用于开发。当我修复部署代码时,我将其分解为开发,反之亦然。
我做错了什么?
答案 0 :(得分:0)
我不确定这是否是最干净的方式,但我最后只用mymodule.
为我的所有导入添加前缀。如果我需要在本地开发,我只需在根目录中运行pip install .
。如果我进行任何更改,我需要卸载并重新安装,但至少它可以工作。我确信有一些PATH技巧会阻止我不必这样做。
希望这有帮助