我很困惑。我认为这将是一个简单的错误,但我找不到我做错了什么。我正在运行Python 2.4.4。我写了第一个由多个文件组成的第一个Python脚本。我读过python查看当前工作目录,以及用户添加模块的所有常用路径。我已经在看sys.path中证实了这一点:在本地目录中找不到模块,存在于sys.path中
$ python
Python 2.4.4 (#1, Jan 8 2013, 09:29:21)
[GCC 4.7.2 20120921 (Red Hat 4.7.2-2)] on linux3
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.path)
['', '/usr/local/lib/python24.zip', '/usr/local/lib/python2.4', '/usr/local/lib/python2.4/plat-linux3', '/usr/local/lib/python2.4/lib-tk', '/usr/local/lib/python2.4/lib-dynload', '/usr/local/lib/python2.4/site-packages']
>>>
中的第一项,“”,表示期待在当前工作目录,但它似乎并没有被这样做。这里是我的mult文件python程序的内容。请注意,所有内容都在同一个目录中:
$ ls
cherwellTicket.py dsutils.py emailMessage.py
$
这里是dsutils.py的内容。此模块包含我想在其他类中使用的各种静态方法:
#!/usr/bin/python
import getpass
import socket
class DSUtils:
# (I didn't paste the rest)
这里是cherwellTicket.py的内容。请注意,这是在同一个目录:
#!/usr/bin/python
import DSUtils
class CherwellTicket:
def __init():
pass
然而,当Python改掉执行cherwellTicket.py,继承人发生了什么:
$ python cherwellTicket.py
Traceback (most recent call last):
File "cherwellTicket.py", line 3, in ?
import DSUtils
ImportError: No module named DSUtils
$
这两个文件都在同一个目录,那么为什么是cherwellTicket脚本现在可以导入dsutils类了吗?