-2

我发布这个是因为这个问题的答案(从相对路径导入模块)对于我们这些可能首先提出问题的人来说是不可用的。

假设我有以下文件结构(我与另一个问题保持相同的命名约定):

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

我想Bar.py从内部导入Foo.py

像这样:(我的 C 在这里显示,抱歉):

# Foo.py
from ../dirBar/Bar import *

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

我尝试过的事情:

1) Puffin GDI 的以下建议:

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

结果:

NameError: 名称“文件”未定义

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

2)从这里开始:如何在给定完整路径的情况下导入模块?

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

结果:

IOError:[Errno 22] 无效参数

3) 如此处所述:从相对路径导入模块

(首先添加__init__.py/dirBar

from ..dirBar import Bar

结果:

ValueError:尝试在非包中进行相对导入

4

1 回答 1

0

在所有程序中导入根路径。在所有程序中从根开始旅行路径。

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

或者

root = "C:\dirMain"
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), root)))

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

from dirBar.Bar import class_name
于 2013-10-29T05:45:34.723 回答