我是Python的新手,正在尝试理解一个问题,当我创建一个包时,我遇到了这个问题。 我有以下文件结构:(工作目录为/ my / Python / jmLib2)
/my/Python/jmLib2
|--- Phone
| |--- __init__.py
| |--- Pots.py
|- Test2.py
---------------------------------
cat ./jmLib2/Pots.py
#!/usr/bin/python
def Pots():
print ("I'm Pots Phone")
---------------------------------
cat ./jmLib2/__init__.py
from Pots import Pots
---------------------------------
cat ./Test2.py
#!/usr/bin/python
from Phone import Pots
import os.path
print ("OS:"+str(os.path))
Pots()
当我现在执行以下操作时:
python2 Test2.py
OS:<module 'posixpath' from '/usr/lib/python2.7/posixpath.pyc'>
I'm Pots Phone*
很好,但是如果我这样做:
python3 Test2.py
Traceback (most recent call last):
File "Test2.py", line 2, in <module>
from Phone import Pots
File "/home/juergen/my/Python/jmLib2/Phone/__init__.py", line 1, in <module>
from Pots import Pots
ImportError: No module named 'Pots'
我正在使用Eclipse下的PyDev。在init.py文件中,PyDev报告了一个"无法解析导入:Pots"的错误。 在PyDev和bash下,我遇到了相同的回溯问题。
再次说明,我是Python的新手...所以这可能是一个非常愚蠢的错误。 但是,有人能解释一下Python2和Python3.4之间的区别吗? 我需要修改PYTHONPATH吗?为什么?
问候 Juergen