
作为一个经常处理Python的开发人员,程序包最终成为一个大问题。 在为一个项目安装软件包之后,这些依赖项可能最终与您的新项目冲突。 为了缓解此问题,为隔离的Python编程创建了Virtualenv。 本教程使用Mac安装软件包。
什么是Virtualenv?
Virtualenv是允许开发人员为其Python项目创建隔离环境的工具。 使用Virtualenv,您可以创建此类环境并安装软件包,而不会影响计算机上的其他项目或本机环境。 您可以简单地“点子”安装软件包,该软件包将保留在您的Virtualenv中,而不会与您已经创建的其他Virtualenv产生冲突。
安装Virtualenv
在您自行安装并尝试之前,上面的描述才真正有意义。 首先,通过打开终端并输入以下命令来检查计算机上是否装有Python:
$ python-版本
如果您没有安装Python,则至少可以通过访问Python官方网站来安装Python 3.6。 让我们安装点子:
$ sudo easy_install pip
现在我们再也不必希望在以后使用easy_install了。 让我们下载Virtualenv:
$ pip安装virtualenv
然后检查是否已成功安装:
$ virtualenv-版本
仅供参考,我当前的版本是:
16.4.1
创建您的第一个隔离环境
现在您已经安装了Virtualenv,让我们创建第一个隔离的环境。
# Name the folder what ever you want
$ mkdir projectfolder
$ cd projectfolder
# Change the name to whatever you want, but make it some what short $ virtualenv env
默认情况下,Virtualenv不会将全局软件包包括在隔离的环境中。 这意味着您在本机系统上安装的所有内容都不会在您的环境中显示。
现在,在执行该命令之后,您应该看到一个以您创建的环境命名的文件夹。 现在让我们激活环境。
# This is one way
$ source env/bin/activate
# A lot of other tutorials will just go into the env and activate it.
$ cd env/bin
$ source activate
您应该在终端中得到以下内容:

这表明您在Virtualenv中。 我们首先来看一下您的Python版本:
$ python-版本
python版本应该是本机计算机上的默认python版本。 现在让我们检查您的依赖关系:
$点冻结
结果应该什么都没有。 那是因为您没有安装任何软件包。 让我们安装烧瓶:
$点安装烧瓶
然后再次运行pip冻结:
$点冻结
您应该得到这样的内容:
Click==7.0
Flask==1.0.2
itsdangerous==1.1.0
Jinja2==2.10
MarkupSafe==1.1.1
Werkzeug==0.14.1
您可能想知道在这种隔离的环境中进行开发可能会很好,但是那我该如何转移这些依赖关系呢? 一种方法是将依赖项简单地导出到“ requirements.txt”中。 您可以使用以下命令执行此操作:
$ pip freeze > requirements.txt
此后,您应该会看到一个新的文件,名为requirements.txt。 在不同的环境中,可以使用以下方法安装它:
$ pip install -r requirements.txt
现在让我们停用您的环境:
$停用
您可以在任何目录中运行此命令,而不必返回到环境文件夹。
提示
- 在为项目进行开发时,一个好的做法是使用一个“ .gitignore”,它不会将您的Virtualenv上传到您的Github。 我一直使用的一个人就是这个人:https://github.com/github/gitignore/blob/master/Python.gitignore。 Virtualenv的通用名称是“ env”。 我还在Github项目中将我的Virtualenv命名为this,以防万一我意外忘记将其放入。
- 如果要在创建Virtualenv时使用特定版本的Python,则可以使用以下命令:
$ virtualenv --python=/path/to/python-version env
结论
Virtualenv是一种很好的方式,可以开始管理Python项目。 由于您可以随时安装Virtualenv,因此可以随时在任何文件夹中向上启动Virtualenv,因此可以轻松进行快速开发。
用于撰写本文的资源:
- 适用于Python项目的Gitignore:https://github.com/github/gitignore/blob/master/Python.gitignore
- Virtualenv的官方网站:https://virtualenv.pypa.io/en/latest/
- 冻结Pip的官方文档:https://pip.pypa.io/en/stable/reference/pip_freeze/
- 链接到具有免费使用许可的图像二手文章:https://www.pexels.com/photo/python-book-1181671/