从包中的另一个目录导入函数
Importing a function from another directory within a package
我正在使用 Python3.8 中的以下目录:
package/
__init__.py
/folder1
__init__.py
file1.py
/folder2
__init__.py
file2.py
/folder3
__init__.py
file3.py
我想将一个函数从 file3 导入到 file2。最简单的方法是什么?我还想避免手动附加到 PYTHONPATH,以使下一个拉项目的人尽可能顺利。
到目前为止尝试了相对导入,但没有用,可能是因为我没有在 init 中指定一些东西,它目前是空的。我正在使用的错误:
from ..package.folder3.file3 import function_name
是
ImportError: attempted relative import with no known parent package
感谢大家的帮助!
你的问题的答案很简单,你需要将你的 package
路径添加到系统路径中。
这是一个完整的例子:
- 在
file3.py
中,让我们创建一个简单的函数
def func():
print("Hello from file3")
在file2.py
中,我们可以像这样导入func
函数:
import os
import sys
sys.path.append(os.path.abspath('../../..'))
# import func now from file3
from package.folder3.file3 import func
func() #should return "Hello from file3"
希望这能回答您的问题!
我正在使用 Python3.8 中的以下目录:
package/
__init__.py
/folder1
__init__.py
file1.py
/folder2
__init__.py
file2.py
/folder3
__init__.py
file3.py
我想将一个函数从 file3 导入到 file2。最简单的方法是什么?我还想避免手动附加到 PYTHONPATH,以使下一个拉项目的人尽可能顺利。
到目前为止尝试了相对导入,但没有用,可能是因为我没有在 init 中指定一些东西,它目前是空的。我正在使用的错误:
from ..package.folder3.file3 import function_name
是
ImportError: attempted relative import with no known parent package
感谢大家的帮助!
你的问题的答案很简单,你需要将你的 package
路径添加到系统路径中。
这是一个完整的例子:
- 在
file3.py
中,让我们创建一个简单的函数def func(): print("Hello from file3")
在
file2.py
中,我们可以像这样导入func
函数:import os import sys sys.path.append(os.path.abspath('../../..')) # import func now from file3 from package.folder3.file3 import func func() #should return "Hello from file3"
希望这能回答您的问题!