我正在运行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上运行良好。
有什么想法吗?
感谢。
答案 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解释器)。