2013-12-21 67 views
0

來自Ruby的Python新品。我的Python環境出現問題

我有一個腳本,完美的作品如果我運行它的形式ipythonipython qtconsole。然後我試圖把它變成一個可執行的腳本 - 在頂部投擲#!/usr/bin/env python

運行腳本拋出一個錯誤:

$ ./script/myscript.py Traceback (most recent call last): File "./script/myscript.py", line 6, in <module> import yaml ImportError: No module named yaml

顯然有什麼東西不對Python是如何加載模塊(因爲它完美罰款從REPL),但我不知道如何解決它。

謝謝!

回答

3

可能發生的情況是您的系統上安裝了多個版本的Python,並且yaml模塊僅安裝在其中一個版本中。當你運行ipython它使用一個版本,但你的腳本的shebang線正在尋找另一個版本。運行

head `which ipython` 

,看看它是否匹配高達which python結果(我打賭它不會)。一旦知道ipython正在使用的python二進制文件的路徑,您可以在腳本的shebang行中專門定義它。

作爲一個長期修復程序,編輯您的$PATH變量並將包含所需版本Python的目錄放在which python所示的目錄之前,以便您可以繼續使用#!/usr/bin/env python作爲shebang。

+0

你打賭他們不匹配。感謝那。大多數人釀造安裝python'或使用系統版本? – Brandon

+0

@Brandon - 我實際上使用MacPorts,因爲他們有更多的附加模塊作爲包可用,總體來說,質量控制似乎比自制軟件更好。例如,除了系統任務外,系統Python一般都要避免,因爲它不包括構建某些模塊所需的所有組件。如果這是任何衡量標準,我在這裏看到了更多與「釀造」問題有關的問題,而不是「端口」問題。但是,有些人更喜歡'釀造'。 YMMV :) – MattDMo