通过pip安装后,Python模块路径不同

时间:2013-04-27 23:02:01

标签: python path pip setuptools

假设我正在处理名为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中的所有导入以使用此格式,但这意味着该模块将不再适用于开发。当我修复部署代码时,我将其分解为开发,反之亦然。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

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

希望这有帮助