2

假设我正在开发一个名为 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为使用这种格式,但这意味着该模块将不再在开发中工作。当我为部署修复代码时,我会为了开发而破坏它,反之亦然。

我究竟做错了什么?

4

1 回答 1

0

我不确定这是否是最干净的方式,但我最终只是在所有导入前加上mymodule.. 如果我需要在本地开发,我只是pip install .在根目录下运行。如果我进行任何更改,我需要卸载并重新安装,但至少它可以工作。我确信有一些 PATH 技巧可以阻止我这样做。

希望这可以帮助

于 2013-04-29T19:04:42.970 回答