Django开发环境(linux)¶
在 CentOS 环境上部署Django开发运行环境,基本和 Django开发环境(macOS) 相同,细节差异:
生产环境采用了古老的CentOS 7.2环境,实际我为了能够追平最新的运行开发环境,采用了 在CentOS 7环境源码编译Python 3
由于数据库后端采用 MySQL Atlas ,所以需要安装
mysqlclient
模块
构建步骤¶
完成 在CentOS 7环境源码编译Python 3 准备工作
创建 Python virtualenv (这里项目名为
onesre
):
构建一个
onesre
项目运行环境¶/usr/local/bin/python3.11 -m venv onesre_venv3
# 这里是因为CentOS 7.2新老python环境混合,清理了旧python版本
cd ~/onesre_venv3/bin
unlink python
unlink python3
ln -s /usr/local/bin/python3.11 python3
ln -s python3 python
# 激活
. onesre_venv3/bin/activate
需要安装 mysql 开发包,例如
mariadb-devel
(警告,一定要安装MariaDB 最新版本例如 v10.11 ,否则编译会失败
) ,安装以后系统会有mysql_config
工具:
需要提前安装
mysql-devel
或 mariadb-devel
才能执行 pip install mysqlclient
¶# yum install mysql-devel
yum install mariadb-devel
在项目目录下重新恢复
根据requirements.txt恢复virtualenv依赖模块包¶
pip install -r source/requirements.txt
解决 pip
下载失败(手工下载安装)¶
墙内的杯具就是,在线安装的灵活方便往往会被GFW干成生不如死: pip install
过程中,遇到 Babel-2.12.1-py3-none-any.whl
下载始终中断的问题。解决的方法: pip离线安装Python包
通过
pip downlaod
命令下载指定软件包(版本),这里举例Babel-2.12.1-py3-none-any.whl
:
pip download
可以下载指定版本python包¶mkdir -p ~/onesre_venv3/whl/
# 指定版本下载python包
pip download -d ~/onesre_venv3/whl/ Babel==2.12.1
pip download -d ~/onesre_venv3/whl/ mysqlclient==2.2.0
# 需要特定版本的Django
pip download -d ~/onesre_venv3/whl/ Django==3.2.21
# 也可以不指定版本,则安装最新版本
pip download -d ~/onesre_venv3/whl/ Babel
pip download -d ~/onesre_venv3/whl/ mysqlclient
# 如果有 requirements.txt 采用如下方法打包所有whl文件
for whl in `cat requirements.txt`; do
pip download -d ~/onesre_venv3/whl/ $whl
done
将下载好的
.whl
python包复制到目标主机,然后就可以直接离线安装:
pip install
可以安装下载好的 .whl
python包¶# 在目标主机上下载好 .whl 文件,然后执行本地安装
pip install Babel-2.12.1-py3-none-any.whl
MySQL Atlas 数据连接¶
生产环境采用 MySQL Atlas ,所以 Django使用MySQL Client配置(推荐) (这里包括数据库初始创建步骤):