这是我的代码的结构:
---root-dir/
----app/
-----config/
------ __init__.py
------ config.py
-----constants/
------ __init__.py
------ ****.py
------ ****.py
-----exception/
------ __init__.py
-----main/
------ __init__.py
------ controller.py
-----util/
------ __init__.py
------ picklehelp.py
现在,当我在/main/controller.py
进行以下导入并运行时,它不起作用。
from app.util.picklehelp import func
如何在不对代码进行最大更改的情况下导入模块,以便它可以在任何机器中工作,而不管路径位置和操作系统
答案 0 :(得分:0)
答案是添加sys.path
应用程序的路径(没有文件名):
import sys
sys.path.append(r"root-dir\app\util")
from picklehelp import func
如何在不对代码进行最大更改的情况下导入模块,以便它可以在任何机器*中工作,而不管路径位置和操作系统
sys
模块适用于Python支持的任何操作系统。然后,可以有其他模块独立于操作系统,例如Windows操作系统中的winsound
,winreg
或windows
。
* 没有任何机器可以运行Python
答案 1 :(得分:0)
将您的目录更改为root-dir。运行python -m app.main.controller
这会将您的应用作为模块运行。