python虛擬環境 + 批量pip + 換源


python虛擬環境 + 批量pip + 換源

虛擬環境

曾經我是一個小白,不管運行什么項目都用一個環境,后來項目多了,有的是Django1.11的有的是Django2的,有的項目只能在3.6上運行,經歷過的都明白吧。所以整理了幾個常見的換虛擬環境的方法。

一、使用virtualenv

1. 使用pip

pip install virtualenv

2. 創建運行環境

virtualenv [虛擬環境名稱] 
virtualenv venv

#如果不想使用系統的包,加上–no-site-packeages參數
virtualenv  --no-site-packages 創建路徑名

3. 激活環境

linux:

$ cd venv
$ source ./bin/activate

Windows 10:

> cd venv
> .\Scripts\activate.bat

4. 退出環境

linux:

$ deactivate

Windows 10:

> .\Scripts\deactivate.bat

5. 刪除環境

沒有使用virtualenvwrapper前,可以直接刪除venv文件夾來刪除環境

6. 使用環境

進入環境后,一切操作和正常使用python一樣 安裝包使用pip install 包

二、使用Virtualenvwrapper

Virtaulenvwrapper是virtualenv的擴展包,用於更方便管理虛擬環境,它可以做: - 將所有虛擬環境整合在一個目錄下 - 管理(新增,刪除,復制)虛擬環境 - 快速切換虛擬環境

1. 安裝

# on Windows
pip install virtualenvwrapper-win
# on macOS / Linux
pip install --user virtualenvwrapper
# then make Bash load virtualenvwrapper automatically
echo "source virtualenvwrapper.sh" >> ~/.bashrc
source ~/.bashrc

2. 創建虛擬環境

# on macOS/Linux:
mkvirtualenv --python=python3.6 venv
# on Windows
mkvirtualenv --python=python3 venv

3. 激活環境

workon #列出虛擬環境列表
workon [venv] #切換環境

4. 退出環境

deactivate

5. 刪除環境

rmvirtualenv venv

6. 其他有用指令

pip freeze #查看當前安裝庫版本
#創建 requirements.txt 文件,其中包含了當前環境中所有包及 各自的版本的簡單列表
#保持部署相同,一鍵安裝所有包
pip install -r requirements.txt
pip freeze > requirements.txt 
lsvirtualenv    #列舉所有的環境
cdvirtualenv    #導航到當前激活的虛擬環境的目錄中,相當於pushd 目錄
cdsitepackages   # 和上面的類似,直接進入到 site-packages 目錄
lssitepackages     #顯示 site-packages 目錄中的內容

三、 使用conda管理

conda可以直接創建不同python版本的虛擬環境。前面講的virtualenv只是指定創建不同python版本的虛擬環境,前提是你的電腦上已經安裝了不同版本的python,與conda相比沒有conda靈活。

1. 安裝

下載anaconda安裝的python直接可以使用conda工具

2. 創建虛擬環境

創建不同的python版本,直接寫出版本號就好了,還可以同時安裝想要的庫。

# Python 2.7  
$ conda create -n venv python=2.7  

# Python 3.4  
$ conda create -n venv python=3.4  

# Python 3.5  
$ conda create -n venv python=3.5

3. 激活虛擬環境

#on windows
activate venv
#on linux
source activate venv

4. 退出虛擬環境

#on windows
deactivate
#on linux
source deactivate

5. 刪除虛擬環境

# 刪除一個已有環境
conda remove --name venv --all

6. 其他有用指令

# 列出系統存在虛擬環境
conda info -e
conda env list

# 查看當前環境下已安裝的包
conda list

# 查看某個指定環境的已安裝包
conda list -n venv

# 查找package信息
conda search numpy

# 安裝package
conda install -n venv numpy
# 如果不用-n指定環境名稱,則被安裝在當前激活環境
# 也可以通過-c指定通過某個channel安裝

# 更新package
conda update -n venv numpy

# 刪除package
conda remove -n venv numpy

四. 使用pipenv管理

pipenv是Python官方推薦的包管理工具。 它綜合了 virtualenv , pip 和 pyenv 三者的功能。能夠自動為項目創建和管理虛擬環境。如果你使用過requests庫,就一定會愛上這個庫,因為是同一個大神出品。 pipenv使用 Pipfile 和 Pipfile.lock 來管理依賴包,並且在使用pipenv添加或刪除包時,自動維護 Pipfile 文件,同時生成 Pipfile.lock 來鎖定安裝包的版本和依賴信息,避免構建錯誤。相比pip需要手動維護requirements.txt 中的安裝包和版本,具有很大的進步。

1. 安裝

pip install pipenv

2. 創建虛擬環境

$ cd myproject
$ pipenv install # 創建環境
$ pipenv install requests # 或者直接安裝庫

如果不存在pipfile,會生成一個pipfile,並且如果有的庫添加會自動編輯該文件,不會我們手動更新requirements.txt文件了。

3. 激活Pipenv Shell

$ pipenv shell
$ python --version

批量pip

在包內打開窗口輸入

pip install -r requirements.txt

將一個python環境導為requirements.txt的指令為為:

pip freeze >requirements.txt

pip換源

一次性使用

可以在使用pip的時候加參數-i https://pypi.tuna.tsinghua.edu.cn/simple

例如:pip install SomePackage -i https://pypi.tuna.tsinghua.edu.cn/simple
這樣就會從清華這邊的鏡像去安裝SomePackage庫。

可選國內源:

永久修改,一勞永逸

linux下,修改 ~/.pip/pip.conf (沒有就創建一個), 修改 index-url 為國內鏡像地址,內容如下:

[global] 
index-url = https://pypi.tuna.tsinghua.edu.cn/simple 

windows下,直接在user目錄中創建一個pip目錄,如:C:\Users\xx\pip,新建文件pip.ini,內容如下

[global] 
index-url = https://pypi.tuna.tsinghua.edu.cn/simple 

pip常見問題

HTTPSConnectionPool(host='mirrors.tuna.tsinghua.edu.cn', port=443): Read timed

解決:

sudo pip install --default-timeout=100 future

當然,也可以放在設置文件內,即上文換源的設置文件

[global]
timeout = 60000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple  #使用清華大學鏡像源
[install]
use-mirrors = true
mirrors = https://pypi.tuna.tsinghua.edu.cn


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM