我目前正在开发一个具有自定义设计的Python包的项目,以及一堆使用该包的脚本。构造这个的最佳方法是什么,以便我可以从任何地方运行脚本而不会发现包找不到错误?我也想为这个包构建测试,所以我想有类似的东西:
project/ |--src | |--some_package |--test |--scripts
但是后来我不确定如何让脚本导入我的自定义包,以便我可以从任何地方运行/引用脚本而不会出现“无法找到包”错误。任何帮助表示赞赏!
答案 0 :(得分:2)
答案 1 :(得分:0)
在其他计算机上安装和运行这些脚本的一种方法是使用distutils将它们打包。请参阅http://docs.python.org/library/distutils.html。
否则,如果将__init__.py
文件放入树的目录中,Python会将该目录视为包,并允许您从中导入模块。例如,如果您有这种结构:
project/
|some_script.py
|--some_package
|__init__.py
|some_module.py
|--test
|__init__.py
|--scripts
|__init__.py
在some_script.py中你可以这样做:
import some_package.some_module
这将允许您在没有精心安装的情况下从子目录进行导入,以将模块放在Python路径中的某个位置。对于'test'和'scripts'目录,可以做同样的事情。 (您可能已经知道这一点,但__init__.py
只能是一个空文件。)