IOError: [Errno 13] Permission denied 解決:linux下python安裝並使用非root模組

ly233發表於2019-01-03

安裝

在linux伺服器上,使用pip安裝第三方模組會碰到如下錯誤:

IOError: [Errno 13] Permission denied

這是由於沒有root許可權造成的,可以使用--user來解決(參見這裡),即

pip install --user XXX

其中XXX為你想要安裝的模組名。

 

使用

這樣雖然安裝了,但是使用的時候有可能還沒有找到。

因為這個包是安裝到了當前使用者下

/home/XXX/.local/lib/python3.4/site-packages

所以在使用時,有可能還沒有找到(沒有在python的解釋環境下),如下所示:

import sys
sys.path

可以發現,sys.path中並沒有使用者環境 /home/dejian/.local/lib/python3.4/site-packages 。因此,還需要使用PYTHONPATH來手動將這個目錄新增到sys.path中:

#加入python環境變數(~/.bash_profile中新增)
PYTHONPATH=$HOME/.local/lib/python3.4/site-packages;
export PATH=$HOME/.local/bin:$PATH;
#在~/.bashrc 中新增:
export PYTHONPATH=$HOME/.local/lib/python3.4/site-packages:$PYTHONPATH

儲存後還需要在終端輸入

source ~/.bashrc 


使環境變數立即生效。加入後,這個時候再在python中檢視sys.path就可以發現

多了這個使用者環境變數,這樣再匯入之前的模組(如我的ete3),就不會報錯了。

解決問題中檢視的相關資料:

https://github.com/pypa/pip/issues/4186

https://blog.csdn.net/jasonzzj/article/details/53941147

相關文章