我尝试使用__init__.py
。
我的目录:
sam@sam-M51Kr:~/code/python$ tree
.
|-- __init__.py
|-- lib
| |-- __init.py
| |-- sam_lib.py
| `-- sam_lib.pyc
`-- test.py
1 directory, 5 files
sam@sam-M51Kr:~/code/python$
我的所有__init__.py
都是空的。
我的lib/sam_lib.py
:
k='hello!'
我的test.py
:
import python.lib.sam_lib
print(sam_lib.k)
当我跑步时:
sam@sam-M51Kr:~/code/python$ python test.py
Traceback (most recent call last):
File "test.py", line 1, in <module>
import python.lib.sam_lib
ImportError: No module named python.lib.sam_lib
sam@sam-M51Kr:~/code/python$
如何使用语法import x.x
来解决它?
我应该使用__init.py__
吗?
==============================
我将lib/__init.py
修改为lib/__init__.py
我尝试修改test.py
:
from . import lib.sam_lib as sam_lib
print(sam_lib.k)
会导致错误:
sam@sam-M51Kr:~/code/python$ python test.py
File "test.py", line 1
from . import lib.sam_lib as sam_lib
^
SyntaxError: invalid syntax
sam@sam-M51Kr:~/code/python$
我修改为:
import lib.sam_lib as sam_lib
print(sam_lib.k)
答案 0 :(得分:4)
您的代码在不同级别上是错误的
__init.py
应为__init__.py
import a.b.c
时
除非您使用c.x
a.b.c.x
访问import
a.b.c as c
个对象
要修复代码,请使用:
import lib.sam_lib as sam_lib
print(sam_lib.k)
请注意,如果test.py从上层目录中的代码导入为import python.lib.sam_lib as sam_lib
中的模块,而不是在运行测试时,from .lib import sam_lib
或import python.test
将起作用。 py直接。