@qidiandasheng
2021-04-25T14:12:14.000000Z
字数 2207
阅读 1263
Python&Ruby
$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
在shell 配置文件中设置环境变量,这个一般在安装完成的时候会提示,这里的 shell 配置文件(~/.bash_profile)依不同 Linux 而需作修改,如果使用 Zsh 则需要相应的配置 ~/.zshrc
export PATH="/Users/dasheng/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
使用 pyenv commands
显示所有可用命令
更新之后查看可安装的python版本更多了
$ pyenv update
$ pyenv versions
输出:
system
* 3.2 (set by /Users/dasheng/.python-version)
3.2/envs/env-3.2
env-3.2
星号表示当前正在使用的 Python 版本。
$ pyenv install -l
$ pyenv install 3.4.0 # 安装 python
$ pyenv uninstall 3.4.0 # 卸载 python
pyenv global <version> # 全局设置python版本为指定版本,设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。
pyenv local <version> # 设置当前路径下python版本为指定版本,设置 Python 本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。
pyenv shell <version> # 设置当前shell窗口使用的python版本为指定版本,设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。–unset 参数可以用于取消当前 shell 设定的版本。
python 优先级
shell > local > global
pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。
$ pyenv shell 3.4.0 # 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。–unset 参数可以用于取消当前 shell 设定的版本。
$ pyenv shell --unset
pyenv 插件:pyenv-virtualenv。用来创建python虚拟环境。
$ pyenv virtualenv 3.4.0 env-3.4.0
若不指定 python 版本,会默认使用当前环境 python 版本。如果指定 Python 版本,则一定要是已经安装过的版本,否则会出错。环境的真实目录位于 ~/.pyenv/versions
下
pyenv virtualenvs
pyenv activate env-name # 激活虚拟环境
pyenv deactivate #退出虚拟环境,回到系统环境
pyenv uninstall my-virtual-env
rm -rf ~/.pyenv/versions/env-name # 或者删除其真实目录
指定的安装路径不对,把路径加入PYTHONPATH环境变量
例如,在~/.zshrc
中最后一行加入
export PYTHONPATH="/usr/local/lib/python3.7/site-packages"
https://github.com/pyenv/pyenv/issues/1740
> brew reinstall zlib bzip2
> 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)
python -m pip install --upgrade pip
pip install matplotlib==3.3.1