导入模块时如何解决问题?

时间:2020-07-15 21:33:06

标签: python data-science

下面是我的文件夹结构。

My_Project
|
+-- Project
     |
     +-- file1.py
     |    
     +-- folder1.py
       |  
       +-- folder2.py
           |
           +--file2.py

有人可以帮助我如何将file2.py中的file1.py作为模块导入吗?

到现在为止,我已经尝试使用这种无效的方法

从Project.file1导入some_function,该函数未返回名为“ Project”的模块

我也尝试过:

from ...file1 import some_function

这返回了,但没有父包的相对导入尝试。

1 个答案:

答案 0 :(得分:0)

我找到了卡梅伦的答案:

默认情况下不能。导入文件时,Python仅搜索当前目录,入口点脚本运行所在的目录以及sys.path,其中包括诸如软件包安装目录之类的位置(实际上比这稍微复杂一点,但这涵盖了大多数情况下。)

但是,您可以在运行时将其添加到Python路径:

# some_file.py
import sys
# insert at 1, 0 is the script path (or '' in REPL)
sys.path.insert(1, '/path/to/application/app/folder')

import file

编辑:后来我找到了乔伊的答案:

没问题:

from application.app.folder.file import func_name

只需确保文件夹中还包含一个 init .py,即可将其作为软件包包含在内。不确定为什么其他答案谈论PYTHONPATH。