专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

使用pyenv管理多版本python

在开发Python程序的时候,有时候可能需要在不同版本的 Python 上进行测试。pyenv就是这么一个管理多版本 Python 的工具。pyenv 是利用系统环境变量 PATH 的优先级,劫持 python 的命令到 pyenv 上,根据用户所在的环境或目录,使用不同版本python

Mac下安装

安装

Mac OSX下可直接使用brew安装

# brew update
# brew install pyenv

设置环境变量

如果使用的是 bash,将以下环境变量添加到 ~/.bash_profile,如果使用的是 zsh,则添加到 ~/.zshrc

# echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
# echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc

启动shell时,自动初始化pyenv

# echo 'eval "$(pyenv init -)"' >> ~/.zshrc

重载配置文件

# source ~/.zshrc

查看pyenv版本

# pyenv -v
pyenv 1.2.14

CentOS下安装

安装

由于pyenv是通过下载 python 源码包编译安装,为了保证在编译时不出错,建议安装前安装相关依赖环境(当前环境 CentOS Linux release 7.7.1908 (Core) Minimal仅安装libffi-devel个例不代表全部

# yum install -y gcc tk-devel @development zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel findutils

Github地址:

一般在使用python的时候会涉及到多个版本、不同版本的python创建的虚拟环境,手动安装pyenv后同样需要手动安装pyenv-virtualenv才能管理多个不同的虚拟环境。为了安装方便,我们选用官方提供的一键式安装脚本来直接安装pyenvpyenv-virtualenv

# curl https://pyenv.run | bash

设置环境变量

然后添加环境变量到你当前使用的shell

  • bash: vim ~/.bashrc
  • zsh: vim ~/.zshrc
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

重载配置文件

# source ~/.zshrc

查看pyenv版本

# pyenv -v
pyenv 1.2.14

使用

pyenv常用命令

注:使用local、global、shell,设置Python版本时需要跟上参数(版本号),查看则不需要。

使用方式: pyenv <命令> [<参数>]

命令:
  commands    查看所有命令
  local       设置或显示本地的Python版本
  global      设置或显示全局Python版本
  shell       设置或显示shell指定的Python版本
  install     安装指定Python版本
  uninstall   卸载指定Python版本)
  version     显示当前的Python版本及其本地路径
  versions    查看所有已经安装的版本
  which       显示安装路径

pyenv

  • 查看系统当前安装的python列表
    # pyenv versions

  • 列出可安装版本
    # pyenv install --list

  • 安装指定版本 Python
    # pyenv install <版本号>

  • 卸载指定版本 Python
    # pyenv uninstall <版本号>

  • 显示当前python安装路径
    # pyenv which python

  • 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式
    # pyenv global <版本号>

  • 设置面向程序的本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。
    # pyenv local <版本号>

  • 设置面向 shellPython 版本,通过设置当前 shellPYENV_VERSION 环境变量的方式。这个版本的优先级比 localglobal 都要高。
    # pyenv shell <版本号>

 *  `--unset` 参数可以用于取消当前 `shell` 设定的版本。
        # pyenv shell --unset

pyenv-virtualenv

  • 查看所有虚拟环境
    # pyenv virtualenvs

  • 创建指定python版本的虚拟环境
    # pyenv virtualenv <python版本> <虚拟环境名>

  • 使用虚拟环境生效
    # pyenv activate <虚拟环境名>

  • 退出虚拟环境
    # pyenv deactivate

  • 删除虚拟环境,简单粗暴地将整个目录干掉即可
    # pyenv uninstall <虚拟环境名>

修改pip源

在使用python时如果网络状态不佳直接从官方pip仓库拉取代码速度较慢,推荐使用阿里云pypi镜像仓库

# mkdir ~/.pip && vim ~/.pip/pip.conf

添加如下内容

[global]
index-url = https://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host=mirrors.aliyun.com

常见问题

在尝试安装新的Python版本之前,请先安装Python构建依赖项pywiki 如果您在安装python版本时遇到问题,请访问有关常见构建问题的Wiki页面

pyinstaller

直接使用pyenv install 3.7.5安装后使用pyinstaller打包会报如下错误

OSError: Python library not found: libpython3.7m.so.1.0, libpython3.7.so.1.0, libpython3.7mu.so.1.0
This would mean your Python installation doesn't come with proper library files.
This usually happens by missing development package, or unsuitable build parameters of Python installation.

* On Debian/Ubuntu, you would need to install Python development packages
  * apt-get install python3-dev
  * apt-get install python-dev
* If you're building Python by yourself, please rebuild your Python with `--enable-shared` (or, `--enable-framework` on Darwin)

需要使用如下方法重新安装python:

  • Mac OSX
    # env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.7.5

  • CentOS
    # env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.7.5

pip install报错

使用pip install时报错如下:ModuleNotFoundError: No module named '_ctypes'

97_1.png

需要安装相关依赖包libffi-devel,后再次重新编译安装python

# yum -y install libffi-devel  

文章永久链接:https://tech.souyunku.com/42852

未经允许不得转载:搜云库技术团队 » 使用pyenv管理多版本python

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们