python多版本管理
python多版本管理
https://github.com/pyenv/pyenv
安装
安装相关依赖
1 | sudo apt-get update |
安装pyenv
安装pyenv到$HOME
下的.pyenv
目录。
从仓库获取pyenv,放置到.pyenv
目录。
1 | git clone https://github.com/pyenv/pyenv.git ~/.pyenv |
配置.bashrc
文件。
1 | echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc |
重启Shell以应用新的.bashrc
文件。
1 | exec "$SHELL" |
安装virtualenv
从仓库获取virtualenv,以插件形式安装到.pyenv
目录。
1 | git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv |
配置.bashrc
,为自动激活virtualenv作准备。
1 | echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc |
重启shell以应用新的.bashrc
文件。
1 | exec "$SHELL" |
使用
查看可以安装的Python版本。
1 | pyenv install -l |
我选择3.8.1版本进行安装。
1 | pyenv install 3.8.1 |
接着,创建一个virtualenv。
创建一个使用3.8.1版本Python的virtualenv,名为ver381
。
1 | pyenv virtualenv 3.8.1 ver381 |
这条命令会在$(pyenv root)/versions
目录下创建一个ver381
目录。
然后,实现名为ver381
的virtualenv的自动激活。
新建存放项目代码的目录,我把它放在$HOME
下的codever381
目录,并进入。
1 | cd ~ |
创建.python-version
文件,在其中写上当前virtualenv的名字(可通过pyenv versions
命令查看所有可用virtualenv)。
1 | pyenv versions |
现在,你的命令行开头应该会显示(env_raaynk_hello_world)
字样,表示当前virtualenv环境已激活。
创建一个Python代码文件,在其中写上打印Hello World!的代码。
1 | echo 'print("Hello World!")' >> main.py |
运行它。
1 | python main.py |
到这里,相信你对pyenv和virtualenv的使用方法已经比较清楚了。
下面,我会对pyenv和virtualenv的一些常用命令进行整理。
常用命令
查看可安装的Python版本
1 | pyenv install --list |
安装指定Python版本
1 | pyenv install <版本> |
卸载指定Python版本
1 | pyenv uninstall <版本> |
查看当前已安装的Python版本
1 | pyenv versions |
查看当前已激活的Python版本
1 | pyenv version |
创建指定版本的virtualenv
1 | pyenv virtualenv <版本> <名称> |
创建当前版本的virtualenv
1 | pyenv virtualenv <名称> |
删除指定virtualenv(三种方法)
法一:删除文件
直接删除$(pyenv root)/versions
和$(pyenv root)/versions/{version}/envs
中的指定目录
法二:使用uninstall
命令
1 | pyenv uninstall <名称> |
法三:使用virtualenv-delete
命令
1 | pyenv virtualenv-delete <名称> |
pyenv commands
:查看所有pyenv
命令pyenv exec
:使用特定Python
版本执行某条命令pyenv global
:设置或查看全局Python
版本pyenv hooks
:列出给出的pyenv
命令的钩子脚本pyenv init
:配置shell
环境pyenv install
:安装某个版本的Python
pyenv local
:为某个应用设置特定的Python
版本pyenv prefix
:显示对应Python
版本的路径前缀pyenv rehash
:再哈希pyenv shims
(不清楚有什么用,欢迎评论补充)pyenv root
:显示pyenv
根目录pyenv shell
:为某个shell
设置特定的Python
版本(与pyenv local
类似)pyenv shims
:列出当前存在的shims
(pyenv
的工作原理就是在一个叫shims
的目录下创建Python
解释器的“假版本”,寻找Python
应用时先从该目录查找)pyenv uninstall
:卸载某个版本Python
pyenv --version
:显示pyenv
版本pyenv version
:显示当前Python
版本,等价于pyenv version-name
+pyenv version-file
pyenv versions
查看当前已安装的Python版本pyenv version-file/version-name/version-origin
:当前Python
版本对应的文件/名字/位置pyenv whence
:列出已安装的一个范围内的Python
版本,比如列出本地安装的Python2
到Python3
的版本,可以使用pyenv whence 2to3
pyenv which
:列出可执行文件的绝对路径,比如pyenv which python
可以列出python
命令的绝对路径pyenv virtualenvs
查看所有存在的virtualenvpyenv activate
手动激活指定virtualenvpyenv deactivate
手动反激活当前已被激活的virtualenv
加速
- pyenv淘宝镜像源加速:https://npm.taobao.org/mirrors/python/
- 下载需要的版本放到
~/.pyenv/cache
文件夹下面 - 然后执行
pyenv install 版本号
安装对应的python版本 - 傻瓜式脚本如下,其中v表示要下载的版本号
1 | v=3.7.3;wget https://npm.taobao.org/mirrors/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/;pyenv install $v |
国内镜像
让python pip使用国内镜像
国内源:
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
note:新版ubuntu要求使用https源,要注意。
例如:pip3 install -i https://pypi.doubanio.com/simple/ 包名
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
临时使用
可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple
例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider,这样就会从清华这边的镜像去安装pyspider库。
永久修改,一劳永逸
Linux下,修改 ~/.pip/pip.conf (没有就创建一个文件夹及文件。文件夹要加“.”,表示是隐藏文件夹)
内容如下:
1 | [global] |
windows下,直接在user目录中创建一个pip目录,再新建文件pip.ini。(例如:C:\Users\WQP\pip\pip.ini)内容同上。