我发布这个是因为这个问题的答案(从相对路径导入模块)对于我们这些可能首先提出问题的人来说是不可用的。
假设我有以下文件结构(我与另一个问题保持相同的命名约定):
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:尝试在非包中进行相对导入