Python多版本管理工具-pyenv相关总结

本文详细介绍如何在MAC系统下使用pyenv进行Python多版本管理,包括pyenv的安装、常用命令及与virtualenv、Anaconda的区别。同时,解决安装过程中遇到的常见问题。

由于需要进行MAC下多Python管理,看了很多相关文章,这是自己的理解的相关总结。包括最重要的pyenv 和 virtualenv,anaconda有什么区别

Python多版本管理工具 – pyenv

pyenv介绍

  • pyenv lets you easily switch between multiple versions of Python. It’s simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.

  • This project was forked from rbenv and ruby-build, and modified for Python.

pyenv安装

通过下面的命令进行安装:

# 1.Check out pyenv where you want it installed.
git clone https://github.com/pyenv/pyenv.git ~/.pyenv

# 2.Define environment variable PYENV_ROOT
#如果使用的是zsh,则输出到~/.zshrc文件中
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile 
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile  

# 3.Add pyenv init to shell
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

# 4.Restart your shell so the path changes take effect. 
exec "$SHELL"

# 5.Install Python versions into $(pyenv root)/versions
pyenv install 3.6.8

可参见 官方安装说明,详细,信息量大,同时还有很多相关知识点说明,仔细读下来会有很大收获。

pyenv命令

安装完成后,在命令行中键入「pyenv」可查看该命令的使用帮助

local bin >pyenv
pyenv 1.2.9
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    List all available pyenv commands
   local       Set or show the local application-specific Python version
   global      Set or show the global Python version
   shell       Set or show the shell-specific Python version
   install     Install a Python version using python-build
   uninstall   Uninstall a specific Python version
   rehash      Rehash pyenv shims (run this after installing executables)
   version     Show the current Python version and its origin
   versions    List all Python versions available to pyenv
   which       Display the full path to an executable
   whence      List all Python versions that contain the given executable

pyenv常见命令

上面是所有的pyenv相关命令,经常使用的是如下几个命令:

#创建virtualenv环境
语法:pyenv virtualenv <python-version> <virtualenv-name>
举例:pyenv virtualenv 3.7.0 mypython3.7
注意:这里3.7.0是Python的某个版本号,而且前提是这个版本必须存在(已经通过install命令安装)

#查看已经安装的python版本(列出所有的版本)
pyenv versions 

#查看当前使用的python版本
pyenv versions

#安装一个python版本,如3.7.0
pyenv install 3.7.0

#显示 local/global Python版本
pyenv local/global 

#设置local/global Python版本,如将Python设置为2.7.15
pyenv local/global 2.7.15

#激活和关闭虚拟环境
pyenv activate virtualenv-name
pyenv deactivate

相关问题

0. pyenv 和 virtualenv,anaconda有什么区别

这几者的区别:

pyenv: Python Version Manager
virtualenv: Python Environment Manager.
Anaconda: Package Manager + Environment Manager + Additional Scientific Libraries.

Anaconda包含了众多库的,可以直接使用,比较方便,同时也具备创建虚拟环境的conda命令。

题主也尝试使用Anaconda下的conda命令新建环境,但是发现Anaconda的base环境(Anaconda众多库的默认存放环境)下的python常见库不能共享给其他环境使用,从这一点上来说这一点上来说,conda和pyenv是一样的效果。

1. mac下的一个问题:Failed to activate virtualenv with pyenv:(https://goo.gl/zs7433)

需要注意的是,由于我们使用 pyenv 来管理 python 版本,每次使用 pip 都是把相应的包安装到当前系统使用的 python 版本中。如果我们在虚拟环境中,那么相应的包便安装到相应的虚拟环境中了,如果虚拟环境被删除,所有的软件包都删除了。

2. 安装中提示"ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib"错误

在这里插入图片描述
参考:pyenv-issue 950
stackoverflow

3. pyenv安装python很慢的解决方法

下载python版本包,修改配置文件,使用命令进行安装。

参考【Python开发环境之pyenv环境搭建】

4. 因为不能创建/usr/local/opt/文件夹,而安装失败

pyenv安装中需要创建/usr/local/opt/文件夹,如果当前是普通用户,因为权限问题,不能创建/usr/local/opt/文件夹,所以需要使用sudo进行创建。创建后还是存在权限问题,故需要修改/usr/local/opt/文件夹属主。具体操作如下:
>sudo mkdir /usr/local/opt
chown 用户名 /usr/local/opt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值