我发现导入Python模块复杂,所以我正在做实验来清除它。这里是我的文件结构:ImportError:没有模块命名包
内容__init__.py
PythonTest/
package/
__init__.py
test.py
:
内容的test.py
package = 'Variable package in __init__.py'
from package import test
:
from package import package
print package
当我留出package
(在PythonTest
),并执行python package/test.py
,我得到:
Traceback (most recent call last):
File "package/test.py", line 1, in <module>
from package import package
ImportError: No module named package
期望的输出是Variable package in __init__.py
。我究竟做错了什么?
不过,我可以得到预期的输出在交互模式:
sunqingyaos-MacBook-Air:PythonTest sunqingyao$ python
Python 2.7.10 (default, Oct 23 2015, 19:19:21)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import package
Package in __init__.py
它看起来并不像模块搜索路径设置为'package'包是可找到的。 – user2357112
@ user2357112所以我应该设置'PYTHONPATH'或修改'sys.path'?但为什么在交互模式下一切都好? –
我假设你从与你的文件相同的目录开始交互模式,以便路径自动成为搜索路径的一部分。尝试从完全不同的目录中启动python – WombatPM