JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Django:虚拟环境和Django的安装(一)

wys521 2024-10-22 17:30:36 精选教程 19 ℃ 0 评论


虚拟环境

官方文档:https://docs.python.org/zh-cn/3/tutorial/venv.html

  • 为什么需要虚拟环境

Python应用程序通常会使用不在标准库内的软件包和模块。应用程序有时需要特定版本的库,因为应用程序可能需要修复特定的错误,或者可以使用库的过时版本的接口编写应用程序。

这意味着一个Python安装可能无法满足每个应用程序的要求。如果应用程序A需要特定模块的1.0版本但应用程序B需要2.0版本,则需求存在冲突,安装版本1.0或2.0将导致某一个应用程序无法运行。

这个问题的解决方案是创建一个 virtual environment,一个目录树,其中安装有特定Python版本,以及许多其他包。

然后,不同的应用将可以使用不同的虚拟环境。 要解决先前需求相冲突的例子,应用程序 A 可以拥有自己的 安装了 1.0 版本的虚拟环境,而应用程序 B 则拥有安装了 2.0 版本的另一个虚拟环境。 如果应用程序 B 要求将某个库升级到 3.0 版本,也不会影响应用程序 A 的环境。

  • 虚拟环境原理介绍

虚拟环境相当于一个抽屉,在这个抽屉中安装的任何软件包都不会影响到其他抽屉。并且在项目中,我可以指定这个项目的虚拟环境来配合我的项目。比如我们现在有一个项目是基于 Django2.20.x 版本,又有一个项目是基于 Django 1.1.x 的版本,那么这时候就可以创建两个虚拟环境,在这两个虚拟环境中分别安装 Django 2.20.x 和 Django 1.1.x 来适配我们的项目。

  • 安装 virtualenv

virtualenv 是用来创建虚拟环境的软件工具,我们可以通过 pip 或者 pip3 来安装:

pip install virtualenv
?
pip3 install virtualenv
?
#或者
python -m pip install virtualenv
  • 创建虚拟环境

创建虚拟环境非常简单,通过以下命令就可以创建了:

virtualenv [虚拟环境的名字]
#需要提前将virtualenv的绝对地址加入环境变量,如D:\Program Files (x86)\Python3.7\Scripts

如果你当前的 Python3/Scripts 的查找路径在 Python2/Scripts 的前面,那么将会使用 python3 作为这个虚拟环境的解释器。如果 python2/Scripts 在 python3/Scripts 前面,那么将会使用 Python2 来作为这个虚拟环境的解释器。

  • 进入环境

虚拟环境创建好了以后,那么可以进入到这个虚拟环境中,然后安装一些第三方包,进入虚拟环境 在不同的操作系统中有不同的方式,一般分为两种,第一种是 Windows ,第二种是 linux:

1、windows 进入虚拟环境:进入到虚拟环境的 Scripts 文件夹中,然后执行 activate 。

2、linux 进入虚拟环境: source /path/to/virtualenv/bin/activate一旦你进入到了这个虚拟环境中,你安装包,卸载包都是在这个虚拟环境中,不会影响到外面的环境。

  • 退出虚拟环境

退出虚拟环境很简单,通过一个命令就可以完成:deactivate 。

  • 创建虚拟环境的时候指定 Python 解释器

在电脑的环境变量中,一般是不会去更改一些环境变量的顺序的。也就是说比如你的 Python2/Scripts 在 Python3/Scripts 的前面,那么你不会经常去更改他们的位置。但是这时候我确实是想在创建虚拟环境的时候用 Python3 这个版本,这时候可以通过 -p 参数来指定具体的 Python 解释器:

virtualenv -p C:\Python36\python.exe [virutalenv name]
  • 例子
E:\study\django_study1>virtualenv env1 ? ? ? ? ? ? ? ? ? ?#创建虚拟环境
E:\study\django_study1>cd env1\Scripts ?
E:\study\django_study1\env1\Scripts>activate ? ? ? ? ? ? ?#启动虚拟环境
(env1) E:\study\django_study1\env1\Scripts> ?            ?#前面有(env1)代表已经启动虚拟环境
(env1) E:\study\django_study1\env1\Scripts>deactivate.bat #退出虚拟环境
E:\study\django_study1\env1\Scripts>


virtualenvwrapper

virtualenvwrapper 这个软件包可以让我们管理虚拟环境变得更加简单。不用再跑到某个目录下通 过 virtualenv 来创建虚拟环境,并且激活的时候也要跑到具体的目录下去激活。 安装 virtualenvwrapper:

#linux: pip install virtualenvwrapper 
#windows: pip install virtualenvwrapper-win 
# ? ? ? ? 或者python -m pip install virtualenvwrapper-win


virtualenvwrapper 基本使用

  • 创建虚拟环境:
mkvirtualenv my_env

那么会在你当前用户下创建一个 Env 的文件夹,然后将这个虚拟环境安装到这个目录下。如果你电脑中安装了 python2 和 python3 ,并且两个版本中都安装了 virtualenvwrapper ,那么将会使用环境变量中第一个出现的 Python 版本来作为这个虚拟环境的 Python 解释器。

  • 切换到某个虚拟环境
workon my_env
  • 退出当前虚拟环境
deactivate
  • 删除某个虚拟环境
rmvirtualenv my_env
  • 列出所有虚拟环境
lsvirtualenv
  • 进入到虚拟环境所在的目录
cdvirtualenv
  • 修改 mkvirtualenv 的默认路径

在 我的电脑->右键->属性->高级系统设置->环境变量->系统变量 中添加一个参数 WORKON_HOME ,将这个参数的值设置为你需要的路径。

  • 创建虚拟环境的时候指定 Python 版本

在使用 mkvirtualenv 的时候,可以指定 --python 的参数来指定具体的 python 路径:

mkvirtualenv --python==C:\Python36\python.exe hy_env
  • 例子
#安装
E:\study\django_study2>python -m pip install virtualenvwrapper-win
?
#创建虚拟环境并自动进入
E:\study\django_study2>mkvirtualenv env2
(env2) E:\study\django_study2>
?
#进入虚拟环境
E:\study\django_study2>workon env2
(env2) E:\study\django_study2>ls
?
#退出虚拟环境
(env2) E:\study\django_study2>deactivate
?
#列举虚拟环境
E:\study\django_study2>lsvirtualenv
dir /b /ad "C:\Users\Administrator\Envs"
==============================================================================
env2
?
#进入虚拟环境目录
E:\study\django_study2>cdvirtualenv
D:\Program Files (x86)\Python3.7>

创建Django

使用命令行创建Django项目

  • 安装Django

进入虚拟环境并安装Django

(env2) E:\study\django_study2>python -m pip install django
?
(env2) E:\study\django_study2>pip list
Package ? ?Version
---------- -------
asgiref ? ?3.2.3
Django ? ? 3.0.2
pip ? ? ? ?19.3.1
pytz ? ? ? 2019.3
setuptools 44.0.0
sqlparse ? 0.3.0
wheel ? ? ?0.33.6

重新打开终端

E:\study\django_study2>workon env2
(env2) E:\study\django_study2>django-admin startproject mysite
  • 项目目录介绍
mysite
 ?  - mysite ?  # 对整个程序进行配置
 ?  - init ? ?  #一个空文件,它告诉Python这个目录应该被看做一个Python包
 ?  - settings ?  # 项目配置文件
 ?  - url ? ?  # URL对应关系(路由)
 ?  - wsgi ? ? # 遵循WSIG规范,uwsgi + nginx
- manage.py ? ? # 一个命令行工具,可以使你用多种方式对Django项目进行交互
  • 运行Django
(env2) E:\study\django_study2>cd mysite
?
(env2) E:\study\django_study2\mysite>ls
manage.py ?mysite
?
(env2) E:\study\django_study2\mysite>python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
?
System check identified no issues (0 silenced).
?
You have 17 unapplied migration(s). Your project may not work properly until you
 apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
January 08, 2020 - 17:29:10
Django version 3.0.2, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

然后使用浏览器浏览:http://127.0.0.1:8000/

  • 例子
E:\study\django_study2>workon env2
(env2) E:\study\django_study2>django-admin startproject mysite
(env2) E:\study\django_study2>ls
mysite
?
(env2) E:\study\django_study2>cd mysite
?
(env2) E:\study\django_study2\mysite>ls
manage.py ?mysite
?
(env2) E:\study\django_study2\mysite>python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
?
System check identified no issues (0 silenced).
?
You have 17 unapplied migration(s). Your project may not work properly until you
 apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
January 08, 2020 - 17:29:10
Django version 3.0.2, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

使用pycharm创建Django

使用pycharm创建Django会自动创建虚拟环境

  • 创建


  • 启动


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表