3

これが私のセットアップです:OSXTigerを実行しているMac。仮想マシン(Parallels)で実行されているWindowsXP。Windows XPでは、Macのホームディレクトリがネットワークドライブとしてマップされています。

Macのホームディレクトリのディレクトリに2つのファイルがあります。

foo.py

pass

test.py

import foo

「pythontest.py」と入力して、仮想マシン内からtest.pyを実行すると、次のようになります。

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    import foo
ImportError: No module named foo

コンソールからfooをインポートしようとすると(同じディレクトリからWindowsでpythonを実行している)、すべてうまくいきます。

Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import foo
>>>

Mac pythonでtest.pyを実行すると、すべて問題ありません。

test.pyとfoo.pyを別のディレクトリにコピーすると、Windowsでtest.pyを問題なく実行できます。

元のディレクトリにinit.pyがありますが、空です。さらに、他のファイルと一緒にコピーしても、前の段落では何も壊れません。

Python関連の環境変数は設定されていません。

何か案は?

4

2 に答える 2

2

importsysを追加します。test.pyの先頭にsys.pathを出力します。失敗した場合に何が出力されるかを確認してください。もしも "。" リストにありません、それはあなたの問題かもしれません。

于 2008-10-31T00:58:31.937 に答える
1

ランダムな推測として:foo.pyのアクセス許可はWindowsクライアントからアクセスできますか?(たとえば、仮想マシンからメモ帳で開いてみてください)。

それでよければ、実行してみてください。

python -v -v test.py

出力を確認します(または、PYTHONVERBOSE = 2に設定します)。これにより、fooをインポートしようとするすべての場所が一覧表示されます。作業中のマシンで同様のトレースと比較すると、さらに手がかりが得られる場合があります。

于 2008-10-31T17:49:25.060 に答える