执行'import.py'时出现Python ImportError,但执行'python import.py'时没有
我正在使用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!"