我为它创建了项目和助手模块。但是有些模块相互使用,比如worker 1使用helper1,helper2也使用helper1。因此,我完全搞不清楚我需要如何导入所有这些模块,以便能够独立工作(例如,我想从主脚本中调试helper2),它们仍然可以正常工作。总结-如何正确导入模块,使maint\u脚本将工作和其他模块时,使用out-of-main\u脚本。对不起我的英语
main program dir/ main_script.py -classes/ | |--helper1.py |--helper2.py -worker_classes/ | |--worker1.py
目前,我正在每个脚本的请求中使用这种结构,但是我觉得这种方法不适合python
import os
import sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), 'shell_modules')))
我处理项目内部导入的方法是以可编辑模式安装项目。通过这种方式,所有文件将能够彼此定位,始终从项目根目录开始
为此,请执行以下步骤:
1)编写一个setup.py文件并将其添加到项目根文件夹-它根本不需要太多信息:
2)以可编辑模式安装软件包(最好是从虚拟环境)。从项目文件夹中的终端,写入
注意点-这意味着“在可编辑模式下从当前目录安装包”
3)您的文件现在可以彼此定位,始终从项目根开始。例如,要导入
helper1.py
,可以编写:或者:
对于任何文件,无论它位于项目结构中的什么位置,导入
helper1.py
都是如此正如我所说的,您应该使用一个虚拟环境来实现这一点,这样pip就不会将您的包安装到主Python安装中(如果您的项目有许多依赖项,这可能会很混乱)
目前我最喜欢的工具是pipenv。使用时,将terminal命令替换为
这样您的项目就可以添加到Pipfile中
相关问题 更多 >
编程相关推荐