由于需要进行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:///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」可查看该命令的使用帮助

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:///zs7433)

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

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

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

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

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

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