前言
python 虛擬環(huán)境有很多種章郁,自帶的 venv, 與 virtualenv, conda, pipenv, pyenv
這些虛擬環(huán)境其實差不多,聽說conda 跨平臺挺好的。
pipenv 的確是虛擬環(huán)境利器剥险,pipenv 比較好用的就是對 pip 依賴包的管理桂肌,但是如果不設(shè)置 pip 代理 pipenv lock 和 pipenv install 有點慢。pipenv 進(jìn)入虛擬環(huán)境需要輸入一些命令辛润,我希望省略掉這一步膨处。
pyenv 的虛擬環(huán)境,pyenv 在目錄中設(shè)置了 python 環(huán)境砂竖,在進(jìn)入目錄后直接會使用 pyenv 設(shè)置的環(huán)境真椿, 不需要使用命令進(jìn)入,我比較喜歡這個乎澄,python的版本優(yōu)先級 shell > local > global
shell 為設(shè)置當(dāng)前shell全局python環(huán)境突硝,小心使用,$pyenv shell --unset
取消置济。
pyenv會從當(dāng)前目錄開始向上逐級查找.python-version文件解恰,直到根目錄為止,若找不到浙于,則使用global版本
pycharm 設(shè)置虛擬環(huán)境時, 地址 ~/.pyenv/versions/3.x.x/envs/.../bin/python
pyenv安裝配置
pyenv wiki https://github.com/pyenv/pyenv/wiki/common-build-problems
$sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
$ curl https://pyenv.run | bash
在當(dāng)前sh的~/.bashrc 中添加护盈,如果使用zsh在~/.zshrc 中添加
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
重新加載shell
$ exec $SHELL -l
安裝oh-my-zsh提示更友好[選擇安裝]
$ sudo apt install zsh
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
主題可以百度一下選擇一個好看的
快速安裝python、pip包
$pyenv install 3.7.5
當(dāng)下載python版本時pyenv是下載python官網(wǎng)的python包羞酗,國內(nèi)比較慢腐宋,
國內(nèi)python鏡像網(wǎng)站如:
http://npm.taobao.org/mirrors/python/
http://npm.taobao.org/mirrors/python/3.7.5/Python-3.7.5.tar.xz
下載好包放在~/.pyenv/cache目錄下,如果沒有這個目錄創(chuàng)建, pyenv install 3.7.5 安裝對應(yīng)下載的版本即可檀轨。
有代理可以使用命令行代理工具: proxychains胸竞,/etc/proxychains.conf
填入代理設(shè)置
proxychains pyenv install xxx
19.3.1版的pip可以使用命令設(shè)置國內(nèi)源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
使用pyenv設(shè)置并啟用一個虛擬環(huán)境
$ pyenv install 3.7.5 # 下載安裝python3.7.4
$ pyenv virtualenv 3.7.5 py37 # pyenv virtualenv 版本號 虛擬環(huán)境名
$ mkdir py37
$ cd py37
$ pyenv local py37 # 設(shè)置當(dāng)前文件夾使用py37為虛擬環(huán)境
$ python --version # 查看python的版本
$ pyenv uninstall py37 # 刪除py37虛擬環(huán)境
使用
查看當(dāng)前 python 版本
$ pyenv version
查看所有python版本
$ pyenv versions
使用python版本創(chuàng)建虛擬環(huán)境
$ pyenv virtualenv 3.7.5 py37
在當(dāng)前目錄中使用虛擬環(huán)境或者python版本
$ pyenv local 3.7.5
$ pyenv local py37
查看所有虛擬環(huán)境
$ pyenv virtualenvs
設(shè)置全局python
$ python global 版本號
設(shè)置當(dāng)前shell窗口使用的python版本為指定版本,設(shè)置面向 shell 的 Python 版本裤园,
通過設(shè)置當(dāng)前 shell 的 PYENV_VERSION 環(huán)境變量的方式撤师。這個版本的優(yōu)先級比 local 和 global 都要高。
–-unset 參數(shù)可以用于取消當(dāng)前 shell 設(shè)定的版本拧揽。
$ python shell 版本號
刪除python版本或者虛擬環(huán)境
pyenv uninstall 版本號
pyenv升級
使用 curl https://pyenv.run | bash 腳本安裝可以使用命令升級
$ pyenv update
pyenv 刪除
$rm -rf ~/.pyenv
刪除 .bashrc或.zshrc中添加的3行
官方文檔
參考資料
pyenv Tutorial