
我正在全新安裝的 OpenSUSE 13.2 tumbleweed 上運行,它附帶了 python2.7 和 python3.4。我在運行任何基於 python 的庫時不斷遇到以下錯誤ImportError: No module named site
。這個問題的所有答案都涉及將 PYTHONPATH 和/或 PYTHONHOME 環境變數設定為某個路徑,但我已經嘗試了我能想到的所有路徑組合,但沒有任何效果。一個想法?
我遇到問題的庫是 youtube-dl 和 flexget。
答案1
這是你的發行版的工作,讓庫管理正確 - 即使對於像 python 這樣的東西來說,它們似乎不遺餘力地使它變得困難。
使用. 運行 python 2 程序,
#!/usr/bin/python2
使用 . 運行 python 3 程序#!/usr/bin/python3
。或將它們稱為python2 script
或python3 script
。不要使用#!/usr/bin/env python
,即使在有兩條蟒蛇之前,這也是一個愚蠢的糟糕建議。盡可能使用發行版的 Python 函式庫的打包版本。即使您必須等待整整一周才能打包 1.2.0.0.0.0.3 版本,而您卻停留在古老的 1.2.0.0.0.0.2 上。或者幾個月。升級後的庫值得冒弄亂系統的風險,這是極為罕見的。不使用或“使用另一個庫”幾乎總是比“手動安裝此庫弄亂我的系統”更好的答案
如果您必須手動安裝庫,調整說明以適合您的系統。這些說明可能(大部分)適用於開發人員自己的系統,但它們會對如何設定做出大量假設 - 其中大多數對於您的系統來說可能是錯誤的。這意味著徹底閱讀發行版的相關文件和註釋,並了解系統的 python 環境及其工作原理。
即使您的發行版在 python 庫管理方面做得一切都正確,但不調整說明以適應您的系統可能會弄亂您的 python 環境。可悲的是,這是 python(和 ruby)的常見結果,其方式對於任何其他程式設計或腳本語言來說都不常見。有很多不好的建議,本質上是告訴你忽略發行版或作業系統,並將其視為 Python 世界中需要解決的障礙(而不是要使用和使用的工具)。