2010-03-12 78 views
0

我正在運行Cygwin Python版本2.5.2。執行'import.py'時執行Python ImportError,但執行'python import.py'時執行Python ImportError

我有一個三線的源文件,名爲import.py:

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

當我執行 「蟒蛇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上運行良好。

任何想法?

謝謝。

+1

你爲什麼命名模塊import.py?將模塊命名爲與關鍵字相同的模塊似乎是一個非常糟糕的想法..尤其是用於導入模塊的關鍵字。 – 2010-03-12 15:28:35

+0

我在我的機器上在Cygwin上試過這個,並且在最後一次調用時沒有任何問題(儘管我必須使用./import.py作爲最後一次調用)。 – 2010-03-12 15:33:34

回答

3

我有

C:\Temp>import.py 

採用了不同的解釋的感覺。你可以嘗試以下腳本:

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

你是對的。 此腳本顯示.py擴展名與c:\ Python-2.3.3 \ python.exe中的Python解釋器相關聯,該解釋器中沒有xml.etree.ElementTree模塊。 路徑中的「python」可執行文件是c:\ cygwin \ bin \ python.exe,它是版本2.5.2,它具有內置的xml.etree.ElementTree。 謝謝! – 2010-03-12 16:00:57

+0

+1你是不是在Windows上使用Python,這絕對是我會記住的。謝謝。 – 2010-03-13 12:35:31

0

嘗試: 「」

./import.py 

大多數人都沒有在他們的路上。

只要輸入python就會調用cygwin python。

import.py可能會調用任何python與windows下的.py文件關聯。

您正在使用兩個不同的python可執行文件。

1

大概PY擴展連接到其他Python解釋器比一個在/ usr/bin中/ Python的

0

創建旁邊的程序的批處理文件調用它的正確的方式...和我相當由於「windows python」(一個針對windows編譯的python解釋器)和「cygwin python」(一個在cygwin上運行的python解釋器)之間的模糊性,肯定會遇到問題。