8

Python虚拟环境virtualenv的安装和使用

 3 years ago
source link: https://xushanxiang.com/2019/11/python-pyenv-virtualenv.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Python虚拟环境virtualenv的安装和使用

作者: xusx 分类: Python 发布时间: 2019-11-10 20:15

1、现在我们已经安装了多个python版本,但是这还不够, 某些有洁癖的程序员是一定要系统环境足够干净的,这时候我们可以使用virtualenv来创建虚拟python环境。

2、pyenv用于不同python版本之间的切换,还有一种场景就是在确定了python版本之后,需要第三方包不同版本之间的切换,比如不同版本的django版本之间的版本切换,又比如应用A需要jinja 2.7,而应用B需要jinja 2.6,于是就有了virutalenv。

解决方案:虚拟环境

虚拟环境其实就是对真实pyhton环境的复制,这样我们在复制的python环境中安装包就不会影响到真实的python环境。通过建立多个虚拟环境,在不同的虚拟环境中开发项目就实现了项目之间的隔离。

virtualenv本是一个独立的工具,官网在这里:https://pypi.python.org/pypi/virtualenv

幸运的是,如果你是安装我们前面的方式安装pyenv的,那它已经帮我们以plugin的形式安装好了virtualenv,我们只要使用就好了。pyenv 解决的是同一个系统中不同版本的 python 并存的问题,而 pyenv-virtualenv 解决的是不同项目所依赖的软件包之间可能产生冲突的问题。

1、MacOSX问题:ImportError: No module named ‘_scproxy’

2、Mac下使用pyenv安装、管理多个Python版本

否则,请先安装virtualenv:

~ pip install virtualenv
# 使用说明请见:
# https://www.liaoxuefeng.com/wiki/1016959663602400/1019273143120480 # 或 https://www.jianshu.com/p/a8129d12dbc7
# 在本文,我们假定环境为已安装pyenv。

首假定我们创建一个3.7.3的虚拟环境:

~ pyenv virtualenv 3.7.3 env373
Looking in links: /var/folders/g5/y2s0vp1506g5ybtgk5wz8l4r0000gn/T/tmpm9nyjb79
Requirement already satisfied: setuptools in /Users/xxx/.pyenv/versions/3.7.3/envs/env373/lib/python3.7/site-packages (40.8.0)
Requirement already satisfied: pip in /Users/xxx/.pyenv/versions/3.7.3/envs/env373/lib/python3.7/site-packages (19.0.3)

~ ls -al /Users/xxxx/.pyenv/versions
total 0
drwxr-xr-x 5 xxx staff 160 11 10 17:31 .
drwxr-xr-x 6 xxx staff 192 11 10 17:31 ..
drwxr-xr-x 6 xxx staff 192 11 10 15:30 2.7.16
drwxr-xr-x 7 xxx staff 224 11 10 17:31 3.7.3
lrwxr-xr-x 1 xxx staff 43 11 10 17:31 env373 -> /Users/xxx/.pyenv/versions/3.7.3/envs/env373

~ pyenv versions
*system (set by /Users/xxx/.pyenv/version)
2.7.16
3.7.3
3.7.3/envs/env373
env373

1、如果你是通过Cakebrew安装的pyenv,请也安装上pyenv-virtualenv。

2、命令中的“3.7.3”必须是一个安装前面步骤已经安装好的Python版本, 否则会出错。

3、~/.pyenv/versions/env373是个软链接(符号链接)

手动切换到新的虚拟环境的命令为:

~ pyenv activate env373
~ pyenv version #显示当前目录下采用的 python 版本

手动退出虚拟环境切换回系统环境的命令为:

~ pyenv deactivate

pyenv-virtualenv 支持自动激活和退出虚拟环境。首先确保在 shell 配置文件中添加了:

~ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
~ exec $SHELL

接着在需要使用虚拟环境的目录(通常是项目目录)中:建立一个.python-version的文本文件,将虚拟环境名称(如env373)写在里面即可。之后每次进/出该目录时,虚拟环境都将自动激活/退出。

删除虚拟环境:

rm -rf ~/.pyenv/versions/env373/

官方文档:https://github.com/pyenv/pyenv-virtualenv/blob/master/README.md

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用*标注


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK