为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

DIEA 2021-11-30 10:32:57
我想以我的工作目录作为项目主目录加载一个函数/模块,但函数文件存储在子目录级别以下,所以正常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/
查看完整描述

3 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

__init__.py在每个子目录中添加一个空文件,使它们成为模块。


.

├── code

│   ├── __init__.py

│   └── scripts

│       ├── __init__.py

│       └── script1.py

└── main.py

然后,如果您调用hello了一个函数,则code/scripts/script1.py可以通过以下方式导入该函数:


from code.scripts.script1 import hello

hello("yo")


查看完整回答
反对 回复 2021-11-30
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

如果您当前的目录是 project_main_directory,则可以使用:

from code.scripts.functions.function1 import function1

您的脚本目录无关紧要。只有您当前的目录很重要(请参阅 IDE 的顶部)


查看完整回答
反对 回复 2021-11-30
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

要从另一个 python 文件导入函数/模块,您必须执行以下操作 -

from code.scripts.functions.function1 import function1

上面我们从存储在functions目录中的function1.py文件中加载function1,该目录存储在scripts目录中,最后在code目录中。

编辑 - 所以你是说,你想从 script1.py 中的 function1.py 加载一个函数?在那种情况下from .functions.function1 import function应该工作。


查看完整回答
反对 回复 2021-11-30
  • 3 回答
  • 0 关注
  • 174 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信