从不同文件夹导入文件

发布于 2022-02-17 09:39:57

我有以下文件夹结构。

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

我想从file.pyin导入一些函数some_file.py

我试过了

from application.app.folder.file import func_name

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

关注者
0
被浏览
68
1 个回答
  • 面试哥
    面试哥 2022-02-17
    为面试而生,有面试问题,就找面试哥。

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


    默认情况下,您不能。导入文件时,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
    


  • 面试哥
    面试哥 2022-02-17
    为面试而生,有面试问题,就找面试哥。

    没有错:

    from application.app.folder.file import func_name
    

    只要确保folder还包含一个__init__.py,这允许它作为一个包包含。不知道为什么其他答案谈论PYTHONPATH.



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看