2016-12-27 63 views
1

我試圖使用pip,每次我運行命令installupgrade,我看到這種類型的錯誤(OSError)。關於權限的pip錯誤,這可以修復嗎?

我不喜歡sudo只是安裝軟件包,這是必需的嗎?

Exception: 
Traceback (most recent call last): 
    File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 215, in main 
    status = self.run(options, args) 
    File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 342, in run 
    prefix=options.prefix_path, 
    File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 784, in install 
    **kwargs 
    File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 851, in install 
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix) 
    File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 1064, in move_wheel_files 
    isolated=self.isolated, 
    File "/Library/Python/2.7/site-packages/pip/wheel.py", line 345, in move_wheel_files 
    clobber(source, lib_dir, True) 
    File "/Library/Python/2.7/site-packages/pip/wheel.py", line 316, in clobber 
    ensure_dir(destdir) 
    File "/Library/Python/2.7/site-packages/pip/utils/__init__.py", line 83, in ensure_dir 
    os.makedirs(path) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line 157, in makedirs 
    mkdir(name, mode) 
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/docutils' 
+1

如果您不想使用sudo,請使用virtualenv。 –

+0

@ DavidK.Hess,所以必須這樣做是正常的? – Blankman

+0

是的。默認情況下,您添加的python標準庫和包安裝在管理區域中。 –

回答

1

您正在嘗試修改所有用戶共享的位置。如果沒有sudo -ing,那麼你就不能這樣做,否則,人們可以使用刪除所有用戶數據或將其複製到他們的個人文件夾以便閱讀的程序來代替python等。

如果您只想對自己進行更改,而不是其他人,則可以通過pip參數--user將其安裝到~/.local,以便新軟件包僅爲您而不是其他用戶安裝。

虛擬環境是另一種選擇,但這在某種程度上過分矯枉過正(即使系統site-packages目錄中有活動的虛擬環境也會將您完全隔離,因此如果需要,您必須單獨安裝所有軟件包)。

+0

是最佳做法嗎?我是筆記本電腦的唯一用途。 – Blankman

+1

@Blankman:如果你是唯一的用戶,那麼你採用哪種方法並不重要。也就是說,如果第二個用戶出現(包括爲了安全而在限制帳戶下運行的進程),使用「--user」進行安裝意味着他們不會看到新的軟件包,系統安裝(需要提升權限例如從'sudo'執行)將確保每個人都能看到它。 – ShadowRanger

+0

不僅如果他是唯一的用戶,我是我機器上的唯一用戶,但我使用多個虛擬環境來保持獨立的開發環境。這個問題已經得到解答,因爲問題不是「哪一種更好......」。正如@David K. Hess所說,我也推薦'virtualenv' –

0

Linux和Mac OS自帶打包的Python解釋器,建議不要將它們用於您的開發目的。開始使用virtualenv這個工具來創建獨立的Python環境,您可以在其中安裝任何軟件包,測試自己的庫的安裝等等,而不會影響系統安裝的Python環境。查看他們的網站,獲取有關如何在virtualenv中安裝,創建和運行腳本的教程。