我是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
更有意义的消息?哪些工具可以帮助我快速修复它?
答案 0 :(得分:1)
您必须确保根目录(db目录)位于 PYTHON PATH 中。如果您使用virtualenvwrapper和pip,则此db目录始终位于该PYTHON PATH中,因此您不必关心它。
因此您可以从任何地方导入:
from db.db1 import SomeStuff
它应该可以工作。
使用虚拟环境创建不相互干扰的环境是一个好习惯。您应该尝试一下。