Python 奇异的恐怖

Python 奇异的恐怖,python,import,windows-xp,Python,Import,Windows Xp,这是我的设置:一台Mac,运行OS X Tiger。在虚拟机中运行的Windows XP(并行)。Windows XP将我的Mac主目录映射为网络驱动器 我的Mac主目录中有两个文件: 福比 test.py 如果通过键入“python test.py”在虚拟机中运行test.py,我会得到以下结果: Traceback (most recent call last): File "test.py", line 1, in <module> import foo Impor

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

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

福比 test.py 如果通过键入“python test.py”在虚拟机中运行test.py,我会得到以下结果:

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    import foo
ImportError: No module named foo
如果我用Mac python运行test.py,一切都很好

如果我将test.py和foo.py复制到另一个目录,我就可以在Windows下毫无问题地运行test.py

原始目录中有一个init.py,但它是空的。此外,将其与其他文件一起复制不会破坏上一段中的任何内容

没有设置与python相关的环境变量


有什么想法吗?

添加导入系统;将sys.path打印到test.py的开头。查看失败案例中打印出的内容。如果列表中没有“.”,那可能是您的问题。

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

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

python -v -v test.py

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

“.”不在列表中,但CWD是第一个条目(我假设它是扩展的“.”)。我升级了moded,但通常执行模块的目录总是添加到pythopath中。CWD并不总是添加的。在这种情况下,CWD和模块的目录似乎是同一件事,所以它不相关。权限似乎很好(从两侧)。'python-v-v test.py'显示它没有在sys.path[0]中查找;如果我只是运行“python-v-v”,然后在提示符处键入“import foo”,它会在第一个位置找到它。这很奇怪。我想不出任何东西会导致它跳过sys.path中的一个条目(特别是在交互时行为不同的情况下)。我能想到的唯一方法是尽量缩小原因(例如,它可以在其他网络驱动器上复制,或者在删除init.py之后复制)
Traceback (most recent call last):
  File "test.py", line 1, in <module>
    import foo
ImportError: No module named foo
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
>>>
python -v -v test.py