虚拟环境是一种python工具,使用它可以创建一个独立的python环境
为什么要使用虚拟环境
直接举例,假设我已经在系统中安装了python3.6,安装的django版本为1.X的老版本。现在项目上需要使用django2.0的版本,我又不想删除老的django1.X版本(比如我当时是用django1.X版本来学习的,写的代码都是基于django1.X,如果换了django2.0的版本,我的项目可能就运行不起来,我不想为了项目而删除我当前的老版本的django1.X)。既想让原来的项目在django1.X环境下运行,又想在项目上使用django2.0,使用虚拟环境就可以解决这个问题
virtualenv和pipenv的区别
一般大家在创建一个项目的时候,或者copy一个项目到本地后,需要给项目配置python解释器的位置
这个时候pycharm给了两种选择方式,下面的existing interpreter是我们一般选择的主要方式,这样选可以直接选到本地你已经安装好了的python环境(里面已经安装好了各种你之前使用的包)。在上面选择一个新环境的时候,可以选择virtualenv、pipenv和conda。conda暂时不讨论,我们讨论一下前面两种虚拟环境的方式
1、virtualenv
这个是之前大部分人经常使用的创建虚拟环境的方式,通过pip freeze生成requirements.txt文件,然后通过pip install -r requirements.txt进行项目模块的管理与安装。这样的安装存在一个很大的问题就是,每次我新安装或者更新了模块后,需要手动去重新生成依赖文件。
2、pipenv
pipenv管理包的方式和node的npm很像。通过pipenv创建的项目会在项目目录下生成一个pipfile和pipfile.lock文件,只要你在项目下安装了包,他就会自动把包名和版本写入pipfile
比如我这个项目中的pipfile文件,里面记录了我当前项目需要使用的包以及包的版本。别人clone我的项目到本地后,只需要执行pip install即可把项目中需要用到的包全部安装好
使用pipenv创建django项目
1、安装pipenv
pip install pipenv
2、新建项目目录,目录名为pipenv演示
3、进入项目目录(pipenv演示)
4、执行pipenv install( pipenv会根据项目文件夹的名称创建一个虚拟环境,并且会在项目根目录下生成pipfile和pipfile.lock用于管理项目依赖(以后使用pipenv安装的依赖会自动写入pipfile文件,无需手动维护,类似于node.js的package.json)
出现如上图
To activate this project's virtualenv,run pipenv shell
Alternatively,run a command inside the virtualenv with pipenv run
就说明已经创建结束
这时候,项目目录下就出现了两个文件pipfile和pipfile.lock
5、激活虚拟环境
pipenv shell
这时候就可以看到已经进入了这个刚创建的虚拟环境中
要安装依赖包,就可以直接pip install XXX
6、安装指定版本的django
第五步我们已经激活并进入了虚拟环境,现在我们退出 exit
打开pipfile文件,看到url,把url改成豆瓣镜像的地址 https://pypi.douban.com/simple,这样下载依赖包会从国内的豆瓣下载,快很多很多
修改好后执行pipenv install django==2.2.10
7、创建django工程
pipenv run django-admin startproject 工程名 工程所在目录
例:pipenv run django-admin startproject PipenvDemo /Users/fengzhaoxi/Public/pipenv演示
创建好django项目后的项目目录为
8、使用pycharm打开项目,右上角绿色开始箭头左边点击edit configurations,working directory中选择项目目录即可运行项目