Python 从下面的子目录或任何地方导入模块/函数

我想以我的工作目录作为项目主目录加载一个函数/模块,但函数文件存储在子目录级别以下,所以正常


from function_file import function_name


不起作用。


这是项目目录设置的样子:


└───project_main_directory

    │   .gitattributes

    │   .gitignore

    │   README.txt

    │

    ├───code

    │   ├───exploration

    │   └───scripts

    │       │   script1.py

    │       │   script2.py

    │       │   script3.py

    │       │

    │       └───functions

    │           │   function1.py

    │           │   function2.py

    │           └───__init__.py

    │

    ├───data

    │   └───example_data

    │           data.csv

    └───documents

所以我尝试通过导入函数


import code.scripts.function.function1 from function1


这是行不通的。我知道这是因为其他子目录不是模块,但我想问一下附近是否有?


-- 编辑我正在使用 code/scripts/script1.py 中的 .py 文件,但工作目录是 project_main_directory/


DIEA
浏览 175回答 3
3回答

侃侃无极

__init__.py在每个子目录中添加一个空文件,使它们成为模块。.├── code│   ├── __init__.py│   └── scripts│       ├── __init__.py│       └── script1.py└── main.py然后,如果您调用hello了一个函数,则code/scripts/script1.py可以通过以下方式导入该函数:from code.scripts.script1 import hellohello("yo")

慕姐8265434

如果您当前的目录是 project_main_directory,则可以使用:from code.scripts.functions.function1 import function1您的脚本目录无关紧要。只有您当前的目录很重要(请参阅 IDE 的顶部)

叮当猫咪

要从另一个 python 文件导入函数/模块,您必须执行以下操作 -from code.scripts.functions.function1 import function1上面我们从存储在functions目录中的function1.py文件中加载function1,该目录存储在scripts目录中,最后在code目录中。编辑 - 所以你是说,你想从 script1.py 中的 function1.py 加载一个函数?在那种情况下from .functions.function1 import function应该工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python