如何解决python中的“尝试相对导入,但父包未知”错误

ercv8c1e  于 2022-12-25  发布在  Python
关注(0)|答案(1)|浏览(223)

I tried to import File from file.py in file2.py, but I got the error ImportError: attempted relative import with no known parent package
这是我的文件系统:

-- projects
    -- project1
        -- folder1
            -- foo
                -- file.py
                -- fileInterface.py
            -- bar 
                -- file2.py
                -- file2Interface.py

我的密码是:
-- foo/file.py

from fileInterface import FileInterface
class File(FileInterface):
    def __init__(self):
        ...

    def func(self):
        ...

-- bar/file2.py

from file2Interface import File2Interface
from ..foo.file import File
class File2(File2Interface):
    def __init__(self):
        ...

    def func2(self):
        f = new File()
        f.func()
        ...

我也尝试过其他stackoverflow帖子中的方法:

  • 将__init__. py添加到文件夹1、foo、bar
  • Adding setup.py to project1 (with pymodules and packages)
  • 使用python3 -m file2.py运行文件
  • 使用python3 folder1/bar/file2.py运行文件

但是,他们没有工作
先谢了!

eqqqjvef

eqqqjvef1#

import sys
sys.path.append("../foo")
import file

在此选项中,我们将向模块搜索区域添加一个文件夹,该文件夹允许您导入文件。
当更改项目的结构不明智时(例如,从test文件夹调用测试),这是非常有用的,但通常情况下,组装项目是正确的,这样您就不必使用此类技巧。

相关问题