| # Web环境部署指南 |
|
|
| ## 环境信息 |
| - **原环境**: macOS (darwin 24.5.0) |
| - **Python版本**: 3.8.16 |
| - **环境名称**: web |
| - **目标平台**: Linux |
|
|
| ## 方法1: 使用conda environment.yml (推荐) |
|
|
| ### 在Linux系统上复现环境 |
|
|
| 1. **安装Anaconda或Miniconda** |
| ```bash |
| # 如果还没有安装conda |
| wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh |
| bash Miniconda3-latest-Linux-x86_64.sh |
| ``` |
|
|
| 2. **创建新环境** |
| ```bash |
| # 使用environment.yml文件创建环境 |
| conda env create -f environment.yml |
| |
| # 激活环境 |
| conda activate web |
| ``` |
|
|
| 3. **验证安装** |
| ```bash |
| python --version # 应该显示 Python 3.8.16 |
| pip list | grep Django # 检查Django是否正确安装 |
| ``` |
|
|
| ## 方法2: 使用pip requirements (备选) |
|
|
| 如果conda方法遇到问题,可以使用pip方式: |
|
|
| 1. **创建conda环境** |
| ```bash |
| conda create -n web python=3.8.16 |
| conda activate web |
| ``` |
|
|
| 2. **安装依赖包** |
| ```bash |
| # 使用精确版本的requirements文件 |
| pip install -r requirements_exact.txt |
| |
| # 或者使用简化版本的requirements文件 |
| pip install -r requirements.txt |
| ``` |
|
|
| ## 方法3: 手动安装核心包 |
|
|
| 如果上述方法都有问题,可以手动安装核心包: |
|
|
| ```bash |
| # 创建环境 |
| conda create -n web python=3.8.16 |
| conda activate web |
| |
| # 安装核心Django相关包 |
| pip install Django==4.2 |
| pip install djangorestframework==3.14.0 |
| pip install django-bootstrap5==23.1 |
| pip install drf-yasg==1.21.6 |
| |
| # 安装数据处理包 |
| pip install pandas==2.0.2 |
| pip install numpy==1.24.3 |
| pip install rpy2==3.5.17 |
| |
| # 安装服务器相关 |
| pip install gunicorn==20.1.0 |
| pip install psycopg2-binary==2.9.6 |
| |
| # 其他必要包 |
| pip install cryptography==44.0.2 |
| pip install Pillow==9.5.0 |
| pip install python-dotenv==1.0.0 |
| pip install pytz==2023.3 |
| ``` |
|
|
| ## 注意事项 |
|
|
| ### 1. 平台差异 |
| - **rpy2**: 在Linux上可能需要预先安装R语言环境 |
| ```bash |
| # Ubuntu/Debian |
| sudo apt-get install r-base r-base-dev |
| |
| # CentOS/RHEL |
| sudo yum install R R-devel |
| ``` |
|
|
| - **mysqlclient**: 需要MySQL开发包 |
| ```bash |
| # Ubuntu/Debian |
| sudo apt-get install libmysqlclient-dev |
| |
| # CentOS/RHEL |
| sudo yum install mysql-devel |
| ``` |
|
|
| ### 2. 可能的兼容性问题 |
| - 某些包的版本可能在Linux上不完全兼容 |
| - 建议首先尝试安装,如果遇到问题再单独处理特定包 |
|
|
| ### 3. 生产环境建议 |
| - 移除或注释开发工具包(如django-debug-toolbar) |
| - 考虑添加whitenoise用于静态文件处理 |
| - 确保所有安全相关的包都是最新版本 |
|
|
| ## 验证环境 |
|
|
| 创建环境后,运行以下测试来验证环境是否正确: |
|
|
| ```python |
| # test_environment.py |
| import django |
| import pandas as pd |
| import numpy as np |
| import matplotlib.pyplot as plt |
| |
| print(f"Django version: {django.get_version()}") |
| print(f"Pandas version: {pd.__version__}") |
| print(f"NumPy version: {np.__version__}") |
| |
| # 测试Django是否可以正常工作 |
| from django.conf import settings |
| settings.configure(DEBUG=True, SECRET_KEY='test') |
| print("Django configuration successful!") |
| ``` |
|
|
| 运行测试: |
| ```bash |
| python test_environment.py |
| ``` |
|
|
| ## 文件清单 |
|
|
| 该部署包含以下文件: |
| - `environment.yml`: 完整的conda环境配置 |
| - `requirements.txt`: 生产环境的简化依赖列表 |
| - `requirements_exact.txt`: 包含所有确切版本的完整依赖列表 |
| - `deploy_guide.md`: 本部署指南 |
|
|
| 选择最适合你的部署环境的方法即可。 |