2013-12-11 41 views
3

我的django/uwsgi/python因分段錯誤而崩潰,因爲uWSGI顯然正在加載不同版本的Python。uWSGI運行錯誤版本的Python

我剛剛使用pip安裝了uWSGI。這SO question解決了涉及從源代碼編譯的解決方案,但我想避免這種情況。

mihai$ /usr/bin/python 
Python 2.7.5 (default, Aug 25 2013, 00:04:04) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import cv2 
Segmentation fault: 11 

mihai$ /usr/local/bin/python 
Python 2.7.6 (v2.7.6:3a1db0d2747e, Nov 10 2013, 00:42:54) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import cv2 
>>> 

有什麼建議嗎?

我希望一些--flag,可以告訴uWSGI Python中使用的是什麼版本?

回答

2

可悲的是,如果它是對編譯蟒蛇是​​錯誤的,你必須重新編譯。 由於它直接鏈接到它爲它構建的Python,如果您使用的是不同的符號,它們將不匹配。

在你提到的評論中你使用了pip,但沒有得到正確的Python版本。也許你正在使用錯誤的點子?例如在Ubuntu上,你有Python 2.7和3.3。有一個點-2.7和點-3.3。如果您使用的是virtualenv,請確保您使用virtualenv的pip進行安裝。

+0

感謝您的回覆。你是什​​麼意思重新編譯 - 從頭開始​​而不是點子? 我試圖用pip重新安裝沒有運氣 - 是否有另一種解決方法,如這樣?也許如果我刪除有問題的python版本,然後用pip重新安裝uwsgi? – bluemihai

+0

解釋你有多個Python版本。這將有助於找出正確的解決方案。 –

+0

嗯,我現在只有一個,那就是OSX小牛隊。 我刪除了我用自制軟件安裝的那個,這也是導致崩潰的原因之一。我卸載並重新安裝了uwsgi - 同樣的問題。 我現在只有一個版本的python,但uwsgi似乎仍然被掛在另一個版本上。 而版本我不是指數字,它們都是2.7.6。但是Homebrew的一個是用Apple編譯器編譯的,默認的OSX是用GCC編譯的: Python 2.7.6(v2.7.6:3a1db0d2747e,2013年11月10日,00:42:54) [GCC 4.2.1 (Apple Inc. build 5666)(dot 3)] on darwin – bluemihai