私有GitHub的存储库+ SSH +点子=头痛

时间:2019-02-08 00:27:34

标签: python module pip package

我是Pyhton的新手。 我正在使用私有GitHub的存储库和git+ssh://模式以及pip install来保持模块模块化并能够独立维护它们。 但是,使事物“编译”是无尽的痛苦:

  

导入模块时发生异常(ModuleNotFoundError)。

...此消息已成为我最好的消息。

所以假设我有一个处理主数据库的软件包:

> db (root folder)
> | -> setup.py (package metadata)
> | -> __init__.py (notifying the system that this is a module)
> | -> db1.py (codebase)
> | -> db2.py (another codebase)

然后我得到另一个包,我想在其中使用db:在pip install ...之后,我做类似from db.db1 import SomeStuff的事情,然后尝试运行它……尽管它不起作用,我不明白为什么。

毕竟,我的问题是:如何维护分开的软件包,以便其他软件包可以很容易地拾取它们,而不必一直与系统争吵? 如何调试错误并要求系统提供比ModuleNotFoundError更有意义的消息?哪些工具可以帮助我快速修复它?

1 个答案:

答案 0 :(得分:1)

您必须确保根目录(db目录)位于 PYTHON PATH 中。如果您使用virtualenvwrapper和pip,则此db目录始终位于该PYTHON PATH中,因此您不必关心它。

因此您可以从任何地方导入:

from db.db1 import SomeStuff

它应该可以工作。

使用虚拟环境创建不相互干扰的环境是一个好习惯。您应该尝试一下。