[关闭]
@qidiandasheng 2021-04-25T06:12:14.000000Z 字数 2207 阅读 677

python管理工具pyenv(😁)

Python&Ruby


自动安装

  1. $ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

在shell 配置文件中设置环境变量,这个一般在安装完成的时候会提示,这里的 shell 配置文件(~/.bash_profile)依不同 Linux 而需作修改,如果使用 Zsh 则需要相应的配置 ~/.zshrc

  1. export PATH="/Users/dasheng/.pyenv/bin:$PATH"
  2. eval "$(pyenv init -)"
  3. eval "$(pyenv virtualenv-init -)"

pyenv 常用命令

使用 pyenv commands 显示所有可用命令

自身更新

更新之后查看可安装的python版本更多了

  1. $ pyenv update

查看本机安装 Python 版本

  1. $ pyenv versions

输出:

  1. system
  2. * 3.2 (set by /Users/dasheng/.python-version)
  3. 3.2/envs/env-3.2
  4. env-3.2

星号表示当前正在使用的 Python 版本。

查看可安装 Python 版本

  1. $ pyenv install -l

安装与卸载

  1. $ pyenv install 3.4.0 # 安装 python
  2. $ pyenv uninstall 3.4.0 # 卸载 python

python 切换

  1. pyenv global <version> # 全局设置python版本为指定版本,设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。
  2. pyenv local <version> # 设置当前路径下python版本为指定版本,设置 Python 本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。
  3. pyenv shell <version> # 设置当前shell窗口使用的python版本为指定版本,设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。–unset 参数可以用于取消当前 shell 设定的版本。

python 优先级

shell > local > global

pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。

  1. $ pyenv shell 3.4.0 # 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。–unset 参数可以用于取消当前 shell 设定的版本。
  2. $ pyenv shell --unset

pyenv-virtualenv

pyenv 插件:pyenv-virtualenv。用来创建python虚拟环境。

创建虚拟环境

  1. $ pyenv virtualenv 3.4.0 env-3.4.0

若不指定 python 版本,会默认使用当前环境 python 版本。如果指定 Python 版本,则一定要是已经安装过的版本,否则会出错。环境的真实目录位于 ~/.pyenv/versions

列出当前虚拟环境

  1. pyenv virtualenvs
  2. pyenv activate env-name # 激活虚拟环境
  3. pyenv deactivate #退出虚拟环境,回到系统环境

删除虚拟环境

  1. pyenv uninstall my-virtual-env
  2. rm -rf ~/.pyenv/versions/env-name # 或者删除其真实目录

问题

ModuleNotFoundError: No module named 'xxx'

指定的安装路径不对,把路径加入PYTHONPATH环境变量

例如,在~/.zshrc中最后一行加入

  1. export PYTHONPATH="/usr/local/lib/python3.7/site-packages"

unable to install python 3.7.1 on macox 11

https://github.com/pyenv/pyenv/issues/1740

  1. > brew reinstall zlib bzip2
  2. > CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" pyenv install --patch 3.7.1 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)

安装matplotlib出错

  1. python -m pip install --upgrade pip
  2. pip install matplotlib==3.3.1
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注