使用 python 搭建服务器后端流程

都是 ChatGPT 写的,我就不掩饰了。

在开发环境和生产环境使用不同的配置文件

太好了!既然你用的是 Python,那我们就用 python-dotenv 配合环境变量管理来优雅地区分本地和生产配置 🐍✨


🌟 一套完整可用的 Python 环境变量配置方案

✅ 第一步:安装依赖

pip install python-dotenv

✅ 第二步:创建 .env 文件

你可以建两个文件:

.env(开发环境用)

APP_ENV=development
API_URL=http://localhost:8000
DEBUG=true

.env.production(生产环境用)

APP_ENV=production
API_URL=https://yourdomain.com
DEBUG=false

✅ 第三步:在项目中读取 .env 文件

创建一个 config.py 来统一管理配置 👇

import os
from dotenv import load_dotenv

# 判断使用哪个 env 文件
env_file = '.env.production' if os.getenv('ENV') == 'production' else '.env'
load_dotenv(dotenv_path=env_file)

class Settings:
    APP_ENV: str = os.getenv("APP_ENV", "development")
    API_URL: str = os.getenv("API_URL", "http://localhost:8000")
    DEBUG: bool = os.getenv("DEBUG", "false").lower() == "true"

settings = Settings()

然后你就可以在任意地方使用:

from config import settings

print("当前环境:", settings.APP_ENV)
print("是否开启调试:", settings.DEBUG)

✅ 第四步:启动时传入 ENV

开发时:

ENV=development python main.py

生产部署时:

ENV=production python main.py

✅ Bonus:FastAPI 的典型用法

如果你用的是 FastAPI,可以把配置和应用分开:

from fastapi import FastAPI
from config import settings

app = FastAPI(debug=settings.DEBUG)

@app.get("/")
def read_root():
    return {
        "env": settings.APP_ENV,
        "api_url": settings.API_URL
    }

创建 python 虚拟环境

当然可以!🥼我们来一步一步创建一个新的 Python 虚拟环境,并从你当前的 conda 环境导出依赖到 requirements.txt,然后再基于这个文件创建一个全新的虚拟环境。


✅ 一整套创建虚拟环境的标准流程(基于现有 conda 环境)

📦 第一步:从现有的 conda 环境导出 requirements.txt

假设你的 conda 环境名为 myenv(可以用 conda env list 查看你的环境名),然后执行:

conda activate myenv
pip freeze > requirements.txt

💡 为什么不直接用 conda list --export
因为 pip freeze 生成的是 pip 能识别的格式,而 requirements.txt 主要就是给 pip 用的,适合在虚拟环境中用。


🧰 第二步:创建新的虚拟环境(使用 venv

推荐使用 Python 自带的 venv 模块,不依赖 conda,更轻量。

python -m venv venv

这将在当前目录下创建一个名为 venv 的虚拟环境。


🚀 第三步:激活虚拟环境

不同系统命令略有不同:

  • Windows.\venv\Scripts\activate
  • macOS / Linuxsource venv/bin/activate

你激活后会看到命令行前面多了 (venv) 这样的提示。


📥 第四步:安装 requirements.txt 中的依赖

确保激活虚拟环境后运行:

pip install -r requirements.txt

🌼 第五步(可选):验证依赖是否安装成功

pip list

确保列表中的依赖与你在 conda 环境中看到的匹配。


🧹 第六步(可选):清理不必要的包

如果你只想保留实际使用的依赖,推荐用:

pip install pipreqs
pipreqs . --force

它会根据你代码中实际 import 的内容,生成一个精简版 requirements.txt

利用 pm2 管理进程

🧰 第一步:安装 PM2

如果你还没装 PM2,可以用以下命令安装(需要 Node.js):

npm install -g pm2

🚀 第二步:用 PM2 启动你的 Python 程序

直接运行下面这条命令即可:

pm2 start "ENV=production ./venv/bin/python main.py" --name ice-backend

说明:

  • ENV=production:这是你自定义的环境变量。
  • python3 main.py:是你项目的启动指令。
  • --name ice-backend:是你给这个进程起的名字(可以随便换)。

🔄 第三步:设置开机自启(部署用)

pm2 startup
pm2 save

这可以让你的程序在服务器重启后自动重新启动。


📝 第四步:查看与管理进程

  • 查看运行状态: pm2 status
  • 查看日志输出: pm2 logs ice-backend
  • 重启程序: pm2 restart ice-backend
  • 停止程序: pm2 stop ice-backend
  • 删除进程: pm2 delete ice-backend

📦 Bonus:保存配置文件(可选)

你也可以写一个 ecosystem.config.js

module.exports = {
  apps: [
    {
      name: "ice-backend",
      script: "main.py",
      interpreter: "python3",
      env: {
        ENV: "production"
      }
    }
  ]
}

然后启动:

pm2 start ecosystem.config.js

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇