Windows版本 : Windows 10 Home (20H2)
1. 安装 XAMPP
https://www.apachefriends.org/download.html
XAMPP for Windows: 7.4.25
主要用到XAMPP的如下部分:
+ Apache 2.4.51
+ MariaDB 10.4.21 (MySQL的分支)
+ PHP 7.4.25 (VC15 X86 64bit thread safe) + PEAR
+ phpMyAdmin 5.1.1
2. 安装 Python & Pip
https://www.python.org/downloads/windows/
下载 Python for Windows: 3.8.1
安装路径: C:\Applications\Python-3.8.1
1) 设置系统环境变量
此电脑 -> 属性 -> 系统高级设置 -> 环境变量 -> 系统变量 -> Path, 添加如下:
C:\Applications\Python-3.8.1
C:\Applications\Python-3.8.1\Scripts
命令行运行(cmd):
> python --version
Python 3.8.1
2) 修改 Pip 数据源到 Ali
新增 C:\Users\xxx\AppData\Roaming\pip\pip.ini 文件,添加如下内容:
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
* C:\Users\xxx\AppData 开始隐藏文件夹, 需要在文件资源浏览器里设置 “可以看到隐藏文件”
3. 安装 Django
先安装 MySQL client 包
$ pip install mysqlclient (Django 3.0 用这个)
$ pip install pymysql (如果用 mysqlclient 连不上数据库,试试这个)
1)直接安装 Django
(1) 安装 Django 3.0
> pip install Django==3.0
(2) 创建 Django 3.0 项目
假设 Django项目目录是 D:\Workshop\python-django
> d:
> cd D:\Workshop\python-django
> python --version
Python 3.8.1
> django-admin startproject demo3x
> cd demo3x
> python manage.py runserver
访问 http://localhost:8000 成功
2)虚拟环境下安装
可以用virtualenv创建一个新的虚拟环境,安装所需的 python包。这样就能确保我们的包配置与我们正在开展的任何其他项目保持良好的隔离。
(1) 安装 virtualenv
> pip install virtualenv
> pip install virtualenvwrapper # 这是对virtualenv的封装版本,一定要在virtualenv后安装
(2) 配置 virtualenv 环境
新建目录 C:\Virtual\Python3-env
> cd C:\Virtual\Python3-env
> virtualenv env01 # 创建一个名字为 env01 的虚拟环境
> virtualenv -p python2 env01 # 如果安装了多个python版本,需要指定使用哪个创建虚拟环境
> dir
> cd env01/Scripts
> activate # 启动虚拟环境
> deactivate # 退出虚拟环境
(3) 在 env01 虚拟环境下安装 Django 4.0 和创建 Django 4.0 项目
假设 Django项目目录是 D:\Workshop\python-django
> activate
(env01) C:\Virtual\Python3-env\env01\Scripts> python --version
Python 3.8.1
(env01) C:\Virtual\Python3-env\env01\Scripts> pip install Django # 安装最新版,此时是 4.0
(env01) C:\Virtual\Python3-env\env01\Scripts> mkdir D:\Workshop\python-django\demo4x
(env01) C:\Virtual\Python3-env\env01\Scripts> django-admin startproject demo4x D:\Workshop\python-django\demo4x
(env01) C:\Virtual\Python3-env\env01\Scripts> python D:\Workshop\python-django\demo4x\manage.py runserver
访问 http://localhost:8000 成功
4. 安装 mod-wsgi (用于 Apache2+Django 生产环境)
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
下载 mod_wsgi-4.9.0-cp38-cp38-win_amd64.whl 到 C:\download, 对应 Python版本是 3.8.x ,64位系统
(尝试 pip install mod-wsgi 没有成功,可能是兼容性问题,直接下载了一个安装成功 )
> cd c:\download
> pip install mod_wsgi-4.9.0-cp38-cp38-win_amd64.whl
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Processing C:\download\mod_wsgi-4.9.0-cp38-cp38-win_amd64.whl
Installing collected packages: mod-wsgi
Successfully installed mod-wsgi-4.9.0
> mod_wsgi-express module-config
LoadFile "c:/applications/python-3.8.1/python38.dll"
LoadModule wsgi_module "c:/applications/python-3.8.1/lib/site-packages/mod_wsgi/server/mod_wsgi.cp38-win_amd64.pyd"
WSGIPythonHome "c:/applications/python-3.8.1"
5. 设置 Apache2 + Django
1) 把 mod-wsgi 配置到 Apache2
修改 httpd.conf, 添加如下内容:
LoadFile "c:/applications/python-3.8.1/python38.dll"
LoadModule wsgi_module "c:/applications/python-3.8.1/lib/site-packages/mod_wsgi/server/mod_wsgi.cp38-win_amd64.pyd"
WSGIPythonHome "c:/applications/python-3.8.1"
2) 把 Django 3.0 项目配置到 Apache2
假设Django 3.0 项目是 D:\Workshop\python-django\demo3x
(1) 在 apache2.conf 添加:
Listen 8888
(2) 在 apache2.conf 或 vHost 配置文件里添加:
ServerName localhost
ServerAlias localhost_demo3x
DocumentRoot D:/Workshop/python-django/demo3x
# DirectoryIndex index.html
# Media files
#Alias /media/ D:/Workshop/python-django/demo3x/media/
# Static files (js/css/images)
Alias /static/ D:/Workshop/python-django/demo3x/static/
Require all granted
# WSGI
WSGIScriptAlias / D:/Workshop/python-django/djangoDemo/demo3x/wsgi.py
Require all granted
Order deny,allow
Allow from all
ErrorLog logs/demo3x_error.log
CustomLog logs/demo3x_access.log combined
(3) Django 3.0, 需要修改 demo3x/demo3x/wsgi.py
import os, sys
from django.core.wsgi import get_wsgi_application
PROJECT_DIR = os.path.dirname(os.path.dirname(__file__))
sys.path.insert(0, PROJECT_DIR)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "demo3x.settings")
application = get_wsgi_application()
6. 重启 Apache2
访问 http://localhost:8888