在virtualenv虛擬環境下使用pip

2021-07-23 09:38:09 字數 1648 閱讀 3396

今天在virtualenv環境下使用pip安裝django的時候出現pip許可權不夠的問題,[ps:又是許可權的問題] 經過一番折騰,將正確姿勢寫一下。

首先建立virtualenv檔案

$ virtualenv --python=python27 /path/to/source/../virtualenv
使用這個新建立的虛擬環境

$ source ../virtualenv/bin/activate
檢視當前使用的python環境

(virtualenv)$ which python

/workspace/virtualenv/bin/python

好了,準備工作完成,此時我們要使用pip命令安裝package(以django為例)

(virtualenv)$ pip install django==1.8.2

[...]

oserror: [errno 13] 許可權不夠:'/local/code/workspace_superlists/virtualenv/lib/python2.7/site-packages/django-1.8.2.dist-info'

一大堆錯誤之後,許可權不夠的報錯來了。按照以往經驗,sudo一下就可以了,於是試了一下

(virtualenv)$ sudo pip install django==1.8.2

requirement already satisfied (use --upgrade to upgrade): django==1.8.2 in /usr/local/lib/python2.7/dist-packages

cleaning up...

下面又說了,django1.8.2版本已經存在了,明明剛建立的虛擬環境,仔細一看發現原來sudo之後使用了/usr/local/lib/python2.7全域性python下的pip命令,一臉懵逼

最後發現原來是所在virtualenv環境的資料夾賦予當前使用者的許可權不足:

(virtualenv)$ sudo chown tagor /path/to/workspace/virtualenv/

(virtualenv)$ pip install django==1.8.2

這下ok。

為了儲存虛擬環境中所需的包列表,也為了以後能再次建立相同的虛擬環境,可以執行pip freeze命令,建立乙個requirements.txt檔案,把這個檔案新增到倉庫

(virtualenv)$ sudo touch ../sourse/requirement.txt

(virtualenv)$ pip freeze > ../sourse/requirement.txt

bash: sourse/requirment.txt: 許可權不夠

同樣的方法

(virtualenv)$ sudo chown tagor /path/to/workspace/sourse/requirement.txt

(virtualenv)$ cat ../sourse/requirement.txt

django==1.8.2

虛擬環境 virtualenv

虛擬環境 虛擬環境安裝 ubuntu sudo pip install virtualenv虛擬環境擴充套件包,方便管理。所有的虛擬環境都位於 home 下的隱藏目錄.virtualenvs下。配置環境變數 1 建立目錄用來存放虛擬環境 mkdir home virtualenvs 2 開啟 bas...

virtualenv虛擬環境

搭建虛擬環境 虛擬環境可以使每個專案的執行環境互不影響 安裝virtualenv pip install virtualenv 建立虛擬環境 方式1 命令列視窗進入指定目錄再建立 virtualenv 虛擬環境名稱 方式2 命令列視窗直接在指定目錄下建立 virtualenvd py virtual...

virtualenv虛擬環境

1 安裝virtualenv包 pip install virtualenv2 建立目錄 mkdir mypro3 建立虛擬環境 virtualenv no site packages venv4 進入虛擬環境 source venv bin activate5 退出虛擬環境 deactivate虛...