从不同文件夹导入文件

2022-09-05 00:47:36

我有以下文件夹结构:

application
├── app
│   └── folder
│       └── file.py
└── app2
    └── some_folder
        └── some_file.py

从 里面,如何从 中导入函数?some_file.pyfile.py


我试过了:

from application.app.folder.file import func_name

答案 1

注意:此答案旨在解决一个非常具体的问题。对于大多数从搜索引擎来到这里的程序员来说,这不是你正在寻找的答案。通常,您会将文件构建到包中(请参阅其他答案),而不是修改搜索路径。


默认情况下,您不能这样做。导入文件时,Python 仅搜索入口点脚本从中运行的目录,其中包括包安装目录等位置(实际上比这更复杂,但这涵盖了大多数情况)。sys.path

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

    # some_file.py
    import sys
    # caution: path[0] is reserved for script path (or '' in REPL)
    sys.path.insert(1, '/path/to/application/app/folder')

    import file


答案 2

没有错:

from application.app.folder.file import func_name

只要确保还包含一个 ,这允许它作为一个包包含在内。不知道为什么其他答案谈论.folder__init__.pyPYTHONPATH