我有两个 Python 包,其中一个需要由另一个导入。目录结构如下:
workspace/
management/
__init__.py
handle_management.py
other_management.py
utils/
__init__.py
utils_dict.py
我正在尝试从文件utils
中的项目导入功能handle_management.py
:
import utils.utils_dict
尝试运行时遇到的错误handle_management.py
:
ImportError: No module named utils.utils_dict
我已经阅读了很多有关如何解决此问题的信息,但似乎找不到有效的解决方案。
我从从相对路径导入模块开始- 我尝试了适用的解决方案,但没有一个奏效。
是唯一workspace/
可以通过的解决方案site_packages
吗?如果是这样,最好的方法是什么?
编辑:
我试图将 - 添加/home/rico/workspace/
到PYTHONPATH
- 不走运。
编辑2:
我能够成功使用 klobucar 的解决方案,但我认为它不会作为通用解决方案工作,因为该实用程序将被其他几个开发人员使用。我知道我可以使用一些 Python 概括来确定每个用户的相对路径。我只是觉得有一个更优雅的解决方案。
最终,该脚本将通过 cron 运行,以对多个 Python 项目执行单元测试。这也将可供每个开发人员使用,以确保在他们的开发过程中进行集成测试。
我需要能够使这更普遍。
编辑 3:
很抱歉,但对于我想要完成的事情,我真的不喜欢这些解决方案。我很感激您的意见 - 我将它们用作临时修复。作为一个完整的修复,我将考虑在site_packages
目录中添加一个可用的脚本,该脚本将添加到PYTHONPATH
. 这是多台机器和多个开发人员需要的东西。
一旦我构建了完整的解决方案,我将在此处发布我所做的并将其标记为解决方案。
编辑4:
我觉得好像我没有很好地表达我对这个问题的需求。下面的答案很好地解决了这个问题 - 但不是我的实际需求。结果,我在另一篇文章中重组了我的问题。我考虑过编辑这个,但是下面的答案(这对其他人非常有帮助)对更改没有意义,而且看起来不合适且无关紧要。
对于这个问题的修订版本,请参阅无法普遍导入 Python 包