Jos*_*hua 35 python import module relative-path
我已经经历了许多Python相关的导入问题,但我无法理解这个问题/让它工作......
我的目录结构是:
Driver.py
A/
Account.py
__init__.py
B/
Test.py
__init__.py
Run Code Online (Sandbox Code Playgroud)
====================
Driver.py
from B import Test
Run Code Online (Sandbox Code Playgroud)
=========
Account.py
class Account:
def __init__(self):
self.money = 0
Run Code Online (Sandbox Code Playgroud)
====================
Test.py
from ..A import Account
Run Code Online (Sandbox Code Playgroud)
==================
当我试图跑
python Driver.py
我收到了错误
Traceback(最近一次调用最后一次):
来自B进口测试
Driver.py
从..A导入帐户输入"B/Test.py",第1行ValueError:尝试相对导入超出toplevel包
Dav*_*ver 21
这种情况正在发生,因为就Python而言A
,B
它们是独立的,无关的软件包.
__init__.py
在同一目录中创建一个,Driver.py
并且一切都应该按预期工作.
在我的情况下,添加__init__.py
是不够的。如果您收到模块未找到错误,您还必须附加父目录的路径。
root :
|
|__SiblingA:
| \__A.py
|
|__SiblingB:
| \_ __init__.py
| \__B.py
|
Run Code Online (Sandbox Code Playgroud)
要从 A.py 导入 B.py,您必须执行以下操作
import sys
# append the path of the parent directory
sys.path.append("..")
from SiblingB import B
print("B is successfully imported!")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23344 次 |
最近记录: |