Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何初始化系统&x27;python项目中的s path变量_Python_Variables_Path - Fatal编程技术网

如何初始化系统&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