从不同文件夹导入文件

我有以下文件夹结构。

application/app/folder/file.py

我想从驻留在另一个Python文件中的file.py导入一些函数

application/app2/some_folder/some_file.py

我试过了

from application.app.folder.file import func_name

和其他一些尝试,但到目前为止我无法正常导入。 我怎样才能做到这一点?


默认情况下,你不能。 在导入文件时,Python只搜索当前目录,运行入口点脚本的目录以及包含软件包安装目录等位置的sys.path (实际上它比这更复杂一点,但是这涵盖了在大多数情况下)。

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

# some_file.py
import sys
sys.path.insert(0, '/path/to/application/app/folder')

import file

没有错:

from application.app.folder.file import func_name

只要确保文件夹中还包含一个__init__.py ,这可以将它作为一个包装包含在内。 不知道为什么其他答案谈论PYTHONPATH。


当模块处于并行位置时,如问题所示:

application/app2/some_folder/some_file.py
application/app2/another_folder/another_file.py

这种简写使一个模块对另一个模块可见:

import sys
sys.path.append('../')
链接地址: http://www.djcxy.com/p/54819.html

上一篇: Importing files from different folder

下一篇: Running python package as a module