| ... | python | javascript |
|---|---|---|
| 构建系统 | poetry/hatch/pdm | webpack/vite/rollup |
| 包管理/虚拟环境管理 | pip(venv/virtualenv/Virtualenvwrapper)/pipenv(pipenv shell)/conda | npm/pnpm/yarn |
| 配置文件 | pyproject.toml | package.json |
pipenv常用指令
pipenv --python 3.7
pipenv shell # 激活虚拟环境
##requirements 包管理
pip3 freeze > requirements.txt
pip3 install -r requirements.txt
##pipenv 包管理
pipenv install / pipenv install -d --skip-lock
pipenv lock -r --dev > requirements.txt
pipenv install -r requirements.txt
pipenv graph # 查看目前安装的库及其依赖
pipenv update --outdated # 查看所有需要更新的依赖项
pipenv update # 更新所有包的依赖项
pipenv update <包名> # 更新指定的包的依赖项
exit # 退出当前虚拟环境poetry常用指令
poetry shell 进入虚拟环境
poetry add 添加依赖包
poetry install 安装所有依赖
poetry run xxx 运行
poetry build 打包
poetry publish 发布python包- 自建部署:服务部署(gunicorn、docker镜像、二进制安装包) + 反向代理服务(nginx、ngrok、cpolar、natapp)
- 平台部署:serverless云函数、Railway
项目部署主要有两种,一种是自建,相对费时费力,但是数据安全可靠,从服务到反向代理都要自己部署,另外一种是一站式部署,第三方平台提供部署服务。
gunicorn -c gunicorn.conf.py main:app启动服务
docker build -t spacecraftserver4flask:latest .
docker run -d --name viserver -p 9000:9000 \
--env APP_ID=xxx \
--env APP_SECRET=xxx \
--env APP_ENCRYPT_KEY=xxx \
--env APP_VERIFICATION_TOKEN=xxx \
--env BOT_NAME=chatGpt \
--env OPENAI_KEY="sk-xxx1,sk-xxx2,sk-xxx3" \
--env API_URL="https://api.openai.com" \
--env HTTP_PROXY="" \
spacecraftserver4flask:latest
# 构建镜像
docker compose build
# 启动服务
docker compose up -d
# 停止服务
docker compose down
- 进入release 页面 下载对应的安装包
- 解压安装包,修改 instance/settings.yaml 或者 prod_config.py 中配置信息
- 运行程序
python spacecraftserver4flask
安装Nginx并且在 /etc/nginx/sites-available/default文件中server --location位置添加如下转发
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
点击下方按钮即可创建一个对应的 Railway 项目,其会自动 Fork 本项目到你的 Github 账号下。
填写完环境变量后,点击 Deploy 就完成了项目的部署
如果不确定自己部署是否成功,可以通过访问上述获取到的域名 (https://xxxxxxxx.railway.app/ping) 来查看是否返回了pong,如果返回了pong,说明部署成功。
- flask run 时只会读取.flaskenv/.env的配置,即使配置了config_file/config_object,也会不生效
- python xx.py时config_file/config_object配置文件将会生效
所以flask run常用雨调试阶段,而python xx.py用于部署阶段
instance为整个web服务的外部配置,应该被copy到操作系统的根目录
| InfluxDB | MySQL | 解释 |
|---|---|---|
| Buckets | Database | 数据桶-数据库,即存储数据的命名空间。 |
| Measurement | Table | 度量-表。 |
| Point | Record | 数据点-记录。 |
| Field | Field | 未设置索引的字段。 |
| Tag | Index | 设置了索引的字段。 |