我们有时候会使用到不同的 Python 版本,可以通过虚拟环境来构建互相隔离的运行空间。
一、安装
构建方式也不复杂,如下
(1) 利用 wget 我们来下载并安装 Python 包管理器 pip
$ wget https://bootstrap.pypa.io/get-pip.py
$ python3 get-pip.py
(2) 现在来安装非常实用的虚拟环境管理工具 virtualenv 和 virtualenvwrapper
$ pip3 install virtualenv virtualenvwrapper
$ rm -rf ~/get-pip.py ~/.cache/pip
(3)然后编辑 Bash 的配置文件 .bash_profile 来确保虚拟环境按照预期运行
$ vim ~/.bash_profile
打开并添加下面的几行命令到文件的最后:
# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
修改完之后应用,这时终端会有提示信息表示已经启动了 virtualenvwrapper
$ source ~/.bash_profile
(4) virtualenvwrapper 工具常用的几个终端命令
mkvirtualenv <env_name> <options> : Used to “make a virtual environment”
rmvirtualenv <env_name> : Destroys a virtual environment
workon <env_name> : Activates a virtual environment
deactivate : Deactivates the current virtual environment
二、应用示例
(1) 创建 Python 虚拟环境
让我们用第一个指令 mkvirtualenv
来创建一个 Python 虚拟环境
$ mkvirtualenv cv -p python3
下面是命令行的输出结果
Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/admin/.virtualenvs/cv/bin/python3.6
Also creating executable in /Users/admin/.virtualenvs/cv/bin/python
Installing setuptools, pip, wheel...
done.
virtualenvwrapper.user_scripts creating /Users/admin/.virtualenvs/cv/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/admin/.virtualenvs/cv/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/admin/.virtualenvs/cv/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/admin/.virtualenvs/cv/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/admin/.virtualenvs/cv/bin/get_env_details
注意 cv
是环境的名称,我们创建了一个基于 Python 3
的虚拟环境。
(2) 进入指定虚拟环境
当需要使用此环境或者在环境中安装新的应用库是使用 workon
指令即可进入我们想要的环境。
$ workon cv
例如我们可以安装 Numpy
$ pip install numpy
(3) 退出虚拟环境
$ deactivate
(全文完)
本文作者 :phillee
发表日期 :2021年4月2日
本文链接 :https://www.cnblogs.com/phillee/p/14609534.html
版权声明 :自由转载-非商用-非衍生-保持署名(创意共享3.0许可协议/CC BY-NC-SA 3.0)。转载请注明出处!
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。