如何初始化系统&x27;python项目中的s path变量
在项目中有很多目录,我希望每个如何初始化系统&x27;python项目中的s path变量,python,variables,path,Python,Variables,Path,在项目中有很多目录,我希望每个.py文件都位于单独的目录中,并正确导入其他文件 我试过这个 PREFIX = normpath(dirname(dirname(dirname(abspath(__file__))))) if PREFIX not in sys.path: sys.path = [PREFIX] + sys.path 当我想导入其他目录的变量时,我只导入这个文件。但是它可能太冗长了 是否有更好的方法以更好的方式解决此问题(将项目路径导出到全局系统路径的方式除外)?您可以
.py
文件都位于单独的目录中,并正确导入其他文件
我试过这个
PREFIX = normpath(dirname(dirname(dirname(abspath(__file__)))))
if PREFIX not in sys.path:
sys.path = [PREFIX] + sys.path
当我想导入其他目录的变量时,我只导入这个文件。但是它可能太冗长了
是否有更好的方法以更好的方式解决此问题(将项目路径导出到全局系统路径的方式除外)?您可以使用python模块并像以下方式导入它们:
import MyModule.MySubModule.myclass
例:
文件夹包括:
/
|-pixie
|- __init__.py
|- libs
|- __init__.py
|- setup.py
|- models
例如:包括对包的支持
-文件(模块)排列在带有\uuu init\uuuuuuuuuy.py
标记的目录中
支持相对包层次结构(使用前导点),
因此,绝对模块参考是不必要的
指定要导入的模块时,不必指定模块的绝对名称。当一个模块或包包含在另一个包中时,可以在同一个顶层包中进行相对导入,而不必提及包名通过在“从”之后的指定模块或包中使用前导点,可以指定向上遍历当前包层次结构的高度,而无需指定确切的名称。一个前导点表示进行导入的模块所在的当前包。两个点意味着上一个包级别。三个点代表两个级别,以此类推。因此,如果从执行。从pkg包中的模块导入mod
,然后您将最终导入pkg.mod。如果从..subpkg2 import mod执行from
from pkg.subpkg1,则将导入pkg.subpkg2.mod。相关进口的规范包含在中
您可以将项目安排为子包,并使用类似于的相对导入
from..subpkg2导入mod
在subpkg2
(来自同一级别的任何其他子包)
/
|-pixie
|- __init__.py
|- libs
|- __init__.py
|- setup.py
|- models