3

这是我的设置:一台运行 OS X Tiger 的 Mac。在虚拟机 (Parallels) 中运行的 Windows XP。Windows XP 将我的 Mac 主目录映射为网络驱动器。

我的 Mac 主目录的目录中有两个文件:

foo.py

pass

测试.py

import foo

如果我通过键入“python test.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

添加导入系统;打印 sys.path 到 test.py 的开头。看看它在失败的情况下打印出什么。如果 ”。” 不在列表中,这可能是您的问题。

于 2008-10-31T00:58:31.937 回答
1

作为一个随机猜测: foo.py 的权限是否可以从 Windows 客户端访问?(例如尝试从虚拟机用记事本打开)。

如果没问题,请尝试运行:

python -v -v test.py

并查看输出(或者,设置 PYTHONVERBOSE=2)。这应该列出它尝试从中导入 foo 的所有位置。将其与工作机器上的类似痕迹进行比较可能会提供一些进一步的线索。

于 2008-10-31T17:49:25.060 回答