目录中的Python导入

我是丽

我有一个结构如下的项目:

.
  |-dir
  |  |-subdir
  |  |  |-subsubdir1
  |  |  |-subsubdir2
  |  |  |-subsubdir3
  |  |  |-sub_sub_main.py
  |  |  |-other_relevant.py
  |  |-sub_main1.py
  |-dir2
  |  |-sub_main2.py
  |-main.py

有时候,我需要从导入功能other_relevant.pymain.pysub_main1.pysub_main2.py,和sub_sub_main.py但是,从目录树的不同级别导入脚本会导致必要的导入结构发生更改。

中的代码other_relevant.pysub_sub_main.py依赖代码在其他Python文件中subsubdir1subsubdir2subsubdir3当我更改导入这两个文件的位置时,必须更改这些子目录中所有python文件中的import语句。

如果我运行main.pysub_main2.py其中进口other_relevant.py,它需要进口other_relevant.py来使用from dir.subdir1.subsubdir1.file import ...

如果我正在运行sub_main.py脚本,则import语句将变为from subdir.subsubdir1.file import ...

如果我运行,sub_sub_main.py则import语句变为from subsubdir1.file import ...

由于文件结构在组织文件方面很有意义,所以我不想真正改变它。有没有一种方法可以管理导入语句,这样我就不必subdir根据运行位置sub_sub_main.py位置更改文件中的所有导入语句了other_relevant.py

让·马克·沃尔

将env变量设置PYTHONPATH为您的顶级文件夹路径。然后,无论您在哪里执行python脚本,所有的import语句都会相对于该文件夹进行。例如,sub_main2.py您可以执行以下操作:

from dir.subdir.subdir3 import *

可以通过获取位于文件夹路径中的sourceme.sh文件来设置env变量。如果仅使用一个项目,则直接在.bashrc中。

样本sourceme.sh:

export PYTHONPATH=`pwd -P`

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章