よくわかりません。これは単純なエラーになると思いますが、何が間違っているのかわかりません。私はPython2.4.4を実行しています。複数のファイルで構成される最初のPythonスクリプトを作成しました。私は、現在の作業ディレクトリでのpythonルックと、ユーザーが追加したモジュールのすべての通常のパスを読みました。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']
>>>
最初のエントリ''は、現在の作業ディレクトリの外観を表しますが、そうではないようです。これが私のマルチファイル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クラスをインポートできるようになったのですか?