【发布时间】:2016-03-23 23:38:08
【问题描述】:
我觉得我缺少一些简单而基本的东西。这是一个玩具设置
PythonProject/
main.py
x/
a.py
y/
b.py
b.py 有一个没有依赖关系的函数 foo
def foo():
print("Hello World")
a.py 需要 b.py 中的 foo 才能工作并直接导入它
import y.b
def bar():
#Do some stuff
y.b.foo()
main.py 需要来自 a.py 的 bar
import x.a
x.a.bar()
现在,运行 a.py 工作正常,它成功导入 b 并找到 foo。 尝试运行 main.py 但是会因导入错误而中断:特别是“import b”在“import a”期间失败
我的印象是,需要发生的事情是 b 需要在 a/ 中通过 __init__.py 公开,但我不确定这样做的 Pythonic 方式是什么。
导入一个模块 (a) 的首选解决方案是什么
【问题讨论】:
-
我逐字复制了您的代码,问题无法重现。您收到的确切错误是什么?我们可以看到更多代码吗?
-
感谢您的回复!我编辑了示例中的代码,使目录名与文件名不同。当我运行我现在发布的确切代码时,我得到:
Traceback (most recent call last): File "main.py", line 1, in <module> import x.a File "/Users/rsmirol/PythonProject/x/a.py", line 1, in <module> import y.b ImportError: No module named 'y' -
这发生在
python3 main.py -
好的,我现在试试。
-
我找到了解决办法!我会把它作为答案发布。
标签: python python-import