繁体   English   中英

从 package 中的另一个目录导入 function

[英]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

我想将 function 从 file3 导入到 file2。 最简单的方法是什么? 我还想避免手动附加到 PYTHONPATH,以使下一个拉项目的人尽可能顺利。

到目前为止,尝试了相对导入,但没有成功,可能是因为我没有在 init 中指定某些内容,目前为空。 我正在使用的错误:

from ..package.folder3.file3 import function_name

ImportError: attempted relative import with no known parent package

感谢大家的帮助!

您的问题的答案很简单,您需要将package路径添加到系统路径。

这是一个完整的例子:

  • file3.py中,我们创建一个简单的 function
     def func(): print("Hello from file3")
  • file2.py中,我们可以像这样导入func function:

     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"

希望这能回答您的问题!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM