【问题标题】:Python module paths different after installing through pip通过 pip 安装后 Python 模块路径不同
【发布时间】: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


【解决方案1】:

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

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 2020-03-03
    相关资源
    最近更新 更多