如何从相对路径导入?

2024-09-30 06:19:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我发这个帖子是因为这个问题(Import a module from a relative path)的答案对于我们这些可能首先要问这个问题的人来说是不可用的。在

假设我有以下文件结构(对于另一个问题,我保留了相同的命名约定):

C:\dirMain\
     dirFoo\
        Foo.py
     dirBar\
        Bar.py

我想从Foo.py内导入Bar.py。在

如下所示:(我的C显示在这里,对不起):

^{pr2}$

请随意标记为副本,但请先检查其他答复;我看到的大多数答复都过于复杂、不起作用或不完整。这是一个简单的问题,希望有一个简单的答案。在

我尝试过的事情:

1)Puffin GDI建议如下:

sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

结果:

NameError: name 'file' is not defined

表面上,这个问题的解决方案就在this answer之中,我不知道。在

2)从这里开始:How to import a module given the full path?

import imp
abc = imp.load_source('bar.py', 'C:\dirMain\dirBar.py')

结果:

IOError: [Errno 22] Invalid Argument

3)如本文所述:Import a module from a relative path

(首先将__init__.py添加到/dirBar

from ..dirBar import Bar

结果:

ValueError: Attempted relative import in non-package


Tags: path答案frompyimportfooosbar
1条回答
网友
1楼 · 发布于 2024-09-30 06:19:07

在所有程序中导入根路径。从所有程序的根目录开始运行路径。在

sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

或者

^{pr2}$

您可以在配置中写入根路径,然后

from dirBar.Bar import class_name

相关问题 更多 >

    热门问题