2014-11-20 54 views
3

我在OS X上,我試圖讓python3在崇高中工作。我通過自制軟件安裝了python3,並使用pip爲python和python3安裝了numpy。爲了能夠建立python3添加以下構建文件的崇高:崇高3:使用Python3構建系統的奇怪輸出

{ 
    "path": "/usr/local/Cellar/python3/3.4.2_1/bin", 
    "cmd": ["python3", "-u", "$file"], 
    "env":{}, 
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
    "selector": "source.python" 
} 

最後我嘗試了以下測試文件的編譯系統:

#test.py 
import numpy 

def square(x): 
    return x * x 

if __name__ == '__main__': 
    print("test: square(42) ==", square(42)) 

如果我建立這個設置爲蟒(其中使用Python 2.7.8的OS X默認版本)構建系統然後我得到以下的(正確)的輸出,當我建立崇高:

('test: square(42) ==', 1764) 
[Finished in 0.1s] 

但是,如果我把我的BUI LD系統建立與python3我得到以下奇怪的結果,當我建立崇高:

sh: sysctl: command not found 
sh: grep: command not found 
sh: sw_vers: command not found 
sh: grep: command not found 
test: square(42) == 1764 
[Finished in 0.1s] 

我仍然得到正確的輸出,但也得到了一堆命令沒有找到。更奇怪的是,如果我保存此腳本並直接從終端使用python test.py for python 2.7.8或使用python3 test.py for python 3,我可以在終端中獲得正確的輸出。另外,如果我從test.py中刪除import numpy,我不會再在sublime輸出中找到任何未找到的命令錯誤。

這個問題似乎只出現在崇高使用python3與上述構建文件,只有當我試圖導入一個安裝了pip的庫。如果我將test.py中的上述導入更改爲sys,那麼它將在沒有任何錯誤消息的情況下在sublime中生成。

回答

7

我想我有一個答案給你。

PATH變量

"path": "/usr/local/Cellar/python3/3.4.2_1/bin", 

需要附加到現有的$ PATH。簡單地用您的構建文件中的該行替換爲

"path": "$PATH:/usr/local/Cellar/python3/3.4.2_1/bin", 

修復了我的問題。

+0

修復它,謝謝!任何線索沒有$ PATH,它在做什麼? – 2015-01-27 19:06:59

+0

很好的問題。原始來源從哪裏來? – Mephistopheles 2015-01-28 02:18:00

+0

對我來說,我在最後添加它即。/usr/local/bin:$ PATH .. thx – kidcapital 2015-06-25 08:22:50