执行'import.py'时的Python ImportError,但执行'python import.py'时却没有

时间:2010-03-12 15:23:02

标签: python import

我正在运行Cygwin Python 2.5.2版。

我有一个三行源文件,名为import.py:

#!/usr/bin/python
import xml.etree.ElementTree as ET
print "Success!"

当我执行“python import.py”时,它可以工作:

C:\Temp>python import.py
Success!

当我运行python解释器并输入命令时,它可以工作:

C:\Temp>python
Python 2.5.2 (r252:60911, Dec  2 2008, 09:26:14)
[GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> #!/usr/bin/python
... import xml.etree.ElementTree as ET
>>> print "Success!"
Success!
>>>

但是当我执行“import.py”时,它不起作用:

C:\Temp>which python
/usr/bin/python

C:\Temp>import.py
Traceback (most recent call last):
  File "C:\Temp\import.py", line 2, in ?
    import xml.etree.ElementTree as ET
ImportError: No module named etree.ElementTree

当我删除第一行(#!/ usr / bin / python)时,我得到了同样的错误。不过,我需要那条线,因为这个脚本在Linux上运行。它在Linux上运行良好。

有什么想法吗?

感谢。

4 个答案:

答案 0 :(得分:4)

我有种感觉

C:\Temp>import.py

使用不同的解释器。您可以尝试使用以下脚本:

#!/usr/bin/env python
import sys
print sys.executable
import xml.etree.ElementTree as ET
print "Success!"

答案 1 :(得分:1)

可能py扩展连接到某个其他python解释器而不是/ usr / bin / python

中的解释器

答案 2 :(得分:0)

尝试:

./import.py

大多数人没有“。”在他们的道路上。

只需输入python就可以调用cygwin python。

import.py可能会调用与windows下的.py文件相关联的python。

您正在使用两个不同的python可执行文件。

答案 3 :(得分:0)

在你的程序旁边创建一个批处理文件,以正确的方式调用它......我很确定你遇到了问题,因为“windows python”(一个为windows编译的python解释器)和“cygwin python”(在cygwin上运行的python解释器)。