# P01 安装环境

## 配置环境

### 创建虚拟环境

`python -m venv erp_venv`

`erp_venv ` 为虚拟环境的名字

创建 Python 虚拟环境，并将其安装在你当前所在目录下的 `erp_venv` 文件夹中。虚拟环境可以帮助你隔离不同的项目的依赖库，这样可以避免项目间的库版本冲突。

### 启动虚拟环境

进入虚拟环境目录

`cd erp_venv`

在目录下执行命令，启动虚拟环境

`./Scripts/activate` （Unix/Linux风格）：
  - 正斜杠 "/" 用作路径分隔符。
  - 在Unix/Linux和类Unix系统中，正斜杠是用于表示文件路径的常见方式。
  - 通常用于在Unix/Linux系统上激活虚拟环境，比如Python虚拟环境。

`.\Scripts\activate`（Windows风格）：
  - 反斜杠 "\\" 用作路径分隔符。
  - 在Windows操作系统中，反斜杠是用于表示文件路径的常见方式。
  - 通常用于在Windows系统上激活虚拟环境，比如Python虚拟环境。

`cd`  <你的虚拟环境目录名称>
       
`.\Scripts\activate`   激活虚拟环境

### 退出虚拟环境

在目录下执行命令，退出虚拟环境

`deactivate`
 
## 安装项目依赖包
    

### 安装 Django

`pip install Django==4.2` 

Django 是一个 Python web 框架，提供许多功能，如 ORM、认证、表单、模板等，它可以帮助你更快、更轻松地开发 web 应用程序。

### 安装 DRF

`pip install djangorestframework`  
    
DRF 是一个基于 Django 的强大而灵活的 RESTful 框架，它提供了许多工具和库，可帮助你快速开发基于 RESTful API 的 web 应用程序。

### 安装 Django-Filter

`pip install django-filter`

介绍：[Integration with DRF — django-filter 23.2 documentation](https://django-filter.readthedocs.io/en/stable/guide/rest_framework.html#drf-integration)

Django-Filter 是一个基于 Django 的库，它提供了一种简单、灵活的方式来过滤 Django 模型的查询集。Django-Filter 的 API 允许开发者使用简单的查询表达式，构建和应用复杂的过滤器，从而在查询集中选择和排除数据。

Django-Filter 通过与 DRF Spectacular 的集成，支持 OpenAPI 规范表述的数据过滤和查询，提供了更加优雅的 API 规范方案。


### 安装 Django Spectacular

`pip install drf_spectacular` 

DRF Spectacular 是 DRF 的 OpenAPI 规范工具。它可以自动构建和生成 OpenAPI 规范文档，并提供方便的 API 测试工具，使你能够更加轻松地创建、测试和维护 RESTful API。同时，它也支持集成 Django Filter，允许你通过 URL 参数过滤查询数据。

### 安装 debug_toolbar 库

`pip install django-debug-toolbar`

### 安装 django_extensions 库

`pip install django_extensions`  

## 使用 pip install -r requirements.txt 命令一键安装  
  
### 注意：需要在当前目录下含有 requirements.txt 文件，或者写清此文件的路径。  

- 当前目录下含有此文件：  

  `pip install -r requirements.txt`  

- 当前目录下不含此文件：  
  
  `pip install -r path/to_your_profile/requirements.txt`

### requirements.txt 文件写法  

![image](assets/requriements_txt.png)    

## 常见报错

若打开虚拟环境后，执行 `python manage.py makemigrations` 命令显示`No Python at C:\Users\78523\AppData\Local\Programs\Python\Python39\python.exe'`  
  
![image](assets/erp_venv.png)

可以使用 `requirements.txt` 选择你本地的 python 来一键创建虚拟环境。

若下载依赖包进度缓慢，可参考下文更换清华源配置。  

###  **清华源配置**  

执行国内清华源镜像加速下载命令  

`pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple`

- 之后将其中的`.venv\pyvenv.cfg`复制到`code\erp_venv\pyvenv.cfg`中即可解决。
  
  ![image](assets/requirements_image.png)

### 课后习题：
[课后练习题](/contents/P13.md#1-python-虚拟环境创建)