请假设以下项目结构:
我希望能够从模块文件fileHash.py中访问模块文件fileChecker.py。这是某种全局包。
一种方法是将路径附加到sys.path中。[顺便问一下,这是PYTHONPATH吗?]
在分发项目时应该怎么做呢?
- 与上述相同吗? --> 但是PYTHONPATH中可能存在重名模块的路径吗? - setuptools是否能完成所有工作?
如何以简洁明了的方式实现它?
非常感谢。
更新:
当直接从其包目录中调用fileHash.py(包括像from files import fileChecker这样的导入)时,需要将项目路径添加到sys.path中(如下所述)。同时,在/test目录中的测试用例也需要在从/test目录中调用时将该路径添加到sys.path中。
/project
/packages
/files
__init__.py
fileChecker.py
/hasher
__init__.py
fileHash.py
mainProject.py
/test
我希望能够从模块文件fileHash.py中访问模块文件fileChecker.py。这是某种全局包。
一种方法是将路径附加到sys.path中。[顺便问一下,这是PYTHONPATH吗?]
在分发项目时应该怎么做呢?
- 与上述相同吗? --> 但是PYTHONPATH中可能存在重名模块的路径吗? - setuptools是否能完成所有工作?
如何以简洁明了的方式实现它?
非常感谢。
更新:
当直接从其包目录中调用fileHash.py(包括像from files import fileChecker这样的导入)时,需要将项目路径添加到sys.path中(如下所述)。同时,在/test目录中的测试用例也需要在从/test目录中调用时将该路径添加到sys.path中。
fileChecker.py
文件中:假设你使用绝对导入方式(Python 3.x 或from __future__ import absolute_import
),从project.packages.hasher
模块中导入fileHash
函数。 - mguijarr