执行'import.py'时出现Python ImportError,但执行'python import.py'时没有

2 投票
4 回答
1622 浏览
提问于 2025-04-15 20:21

我正在使用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

试试这个:

./import.py

大多数人的路径里没有“.”这个符号。

直接输入python会调用Cygwin里的Python。

输入import.py可能会调用Windows下和.py文件关联的那个Python。

你实际上在使用两个不同的Python程序。

1

可能这个.py文件的扩展名是和一个不同的Python解释器有关,而不是位于/usr/bin/python这个路径下的那个。

4

我感觉

C:\Temp>import.py

使用了不同的解释器。你能试试下面的脚本吗:

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

撰写回答