Python切换版本神器pyenv
程序员文章站
2022-05-04 14:25:43
由于Python的2.x与3.x版本的一些语法使用是不相同的,所以在写和使用Python程序上都会遇到需要切换版本的情况。下面介绍切换Python版本的工具pyenv。 安装pyenv 这里以mac举例,需要先安装brew,没有安装的先去安装一下,现在安装brew和pyenv都需要在终端上设置一下代 ......
由于python的2.x与3.x版本的一些语法使用是不相同的,所以在写和使用python程序上都会遇到需要切换版本的情况。下面介绍切换python版本的工具pyenv。
安装pyenv
这里以mac举例,需要先安装brew,没有安装的先去安装一下,现在安装brew和pyenv都需要在终端上设置一下代理。
brew update brew install pyenv
配置一下zsh
echo 'export pyenv_root="$home/.pyenv"' >> ~/.zshrc echo 'export path="$pyenv_root/bin:$path"' >> ~/.zshrc echo 'eval "$(pyenv init -)"' >> ~/.zshrc zsh
安装与查看py版本
# 查看可安装的版本 pyenv install -l # 安装与卸载 python 3.6.6 , 注意安装py版本也需要设置一下终端代理,不然可能会超时导致失败 pyenv install 3.6.6 pyenv uninstall 3.6.6 # 查看当前的 python 版本 pyenv version # 查看已经安装的python版本 pyenv versions
安装后的py版本在/users/你的用户名/.pyenv/versions
目录。
➜ versions pwd /users/thoth/.pyenv/versions ➜ versions ls 3.6.6 ➜ versions
切换py版本
# global 全局设置 一般不建议改变全局设置 pyenv global <python版本> # shell 会话设置 只影响当前的shell会话 pyenv shell <python版本> # 取消 shell 会话的设置 pyenv shell --unset # local 本地设置 只影响所在文件夹 pyenv local <python版本>
优先级关系是:shell > local > global
这里做一下实验,写个小脚本运行一下:
import sys print(sys.version) print(sys.version_info)
验证切换到3.3.6
# 设置版本 ➜ program pyenv shell 3.6.6 # 查看版本 ➜ program pyenv versions system * 3.6.6 (set by /users/thoth/program/.python-version) # 运行脚本和预期一致 ➜ program python seeversion.py 2.7.16 (default, dec 13 2019, 18:00:32) [gcc 4.2.1 compatible apple llvm 11.0.0 (clang-1100.0.32.4) (-macos10.15-objc-s sys.version_info(major=2, minor=7, micro=16, releaselevel='final', serial=0)
验证切换回系统默认版本
# 设置版本 ➜ pyenv local system # 查看版本 ➜ ~ pyenv versions * system (set by /users/thoth/.python-version) 3.6.6 # 运行脚本和预期一致 ➜ ~ python seeversion.py 2.7.16 (default, dec 13 2019, 18:00:32) [gcc 4.2.1 compatible apple llvm 11.0.0 (clang-1100.0.32.4) (-macos10.15-objc-s sys.version_info(major=2, minor=7, micro=16, releaselevel='final', serial=0)
总结:
我感觉全局
就是你在终端的那个目录运行,都有效,但是这样设置未免太浪费,毕竟我们一般只在几个固定目录运行py脚本。
shell
就是你在当前打开的终端有效,关闭后无效。
local
就是,比如你cd进program目录,就在当前的.program目录内有效。其它目录无效。
结合ide使用示例
想让ide运行你安装的版本,设置运行版本路径为:/users/thoth/.pyenv/versions/3.6.6/bin/python
即可。
和virtualenv的一些区别
pyenv可以很方便地在终端和ide切换不同版本。但对于需要开发不同py程序的开发人员来说,不同的项目意味着每个项目都有不同的扩展类库,这些类库都统一安装在相应版本的python环境,会让他们感到很不舒服,不方便管理,也会臃肿。就会希望每个项目的环境都是独立的,纯粹的,干净的。有了这个挑剔的需求,virtualenv就是为这个而生的。
参考文献
推荐阅读
-
Ubuntu18.04下python版本完美切换的解决方法
-
在Ubuntu 18.04中安装pyenv(Python多版本管理工具)
-
【python】pyenv与virtualenv安装,实现python多版本多项目管理
-
Python切换版本神器pyenv
-
对Python 两大环境管理神器 pyenv 和 virtualenv详解
-
mac命令行切换python版本
-
Ubuntu切换Python版本,创建指定Python版本的纯净虚拟环境
-
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
-
linux入门教程之python多版本切换
-
python + uiautomator2编译平板语言工具并切换打包exe可执行文件1.1.4版本--终版