我目前在导入一些函数时遇到困难,这些函数位于主烧瓶应用程序脚本的工作目录的父目录中的python文件中。这是结构的样子
project_folder
- public
--app.py
-scripts.py
这是app.py
的副本代码:
def some_function():
from scripts import func_one, func_two
func_one()
func_two()
print('done')
if __name__ == "__main__":
some_function()
scripts.py
包含如下功能:
def func_one():
print('function one successfully imported')
def func_two():
print('function two successfully imported')
在我的app.py
中导入这些函数的pythonic方法是什么?
答案 0 :(得分:1)
在其前面加上一个点,以便它搜索当前目录(project_folder)而不是您的python路径:
from .scripts import func_one, func_two
相对导入的详细信息在PEP 328
中进行了描述编辑:我假设您正在使用软件包。考虑添加一个__init__.py
文件。
无论如何,您可以通过更改系统路径在python中导入任何内容:
import sys
sys.path.append("/path/to/directory")
from x import y
答案 1 :(得分:1)
1。
import importlib.util
def loadbasic():
spec = importlib.util.spec_from_file_location("basic", os.path.join(os.path.split(__file__)[0], 'basic.py'))
basic = importlib.util.module_from_spec(spec)
spec.loader.exec_module(basic)
return basic #returns a module
__init__.py
。和