2014-09-03 75 views
6

所有蟒蛇TUTS我一直在閱讀最近告訴我做這樣的事情的:運行pip/easy_install時,我需要sudo嗎?

pip install tornado 
pip install requests 

每次我這樣做的時候我被擊中了permission denied警告。但是,當我通過sudo時,所有東西都能正常工作。

需要sudo嗎?如果是這樣,那麼爲什麼很多教程指導都沒有提到這一點?

在ruby中,我們可以使用Rbenv或RVM進行安裝,兩者都不需要使用sudo。 python中是否有任何等價物?還是暗示你應該總是sudo

+0

啊,這有點幫助,如果它是Mac的東西。這解釋了很多。我現在安裝virtualenv,我認爲這可能會幫助我解決一些問題。 – stephenmurdoch 2014-09-03 12:53:10

+1

你可以使用'pip install --user package' – 2014-09-03 13:07:15

回答

8

pip需要將庫編寫到任何正在使用的目錄中。如果您沒有作爲用戶的權限,則會出現此問題,因此pip失敗。使用sudo解決了這個問題,但並不理想。

您不應該使用sudo運行代碼,因爲您不知道庫中的內容,如果它包含可能會對您的計算機造成嚴重損壞的惡意代碼。

您可以通過確保您有權寫入pip設置使用的目錄來解決此問題。

更好的選擇(如您在評論中所建議的)是使用virtualenv,這將允許您在不需要sudo的情況下使用pip。確保你不使用sudo創建這個virtualenv,因爲那樣你就沒有權限以普通用戶的身份寫入它。

+0

謝謝你的理解,非常有幫助。乾杯。 – stephenmurdoch 2014-09-03 13:04:00