文章内容
2025/12/8 18:48:43,作 者: 黄兵
Python 写的程序应该放在 Ubuntu 24.04 那个目录
在 Ubuntu 24.04(以及其他 Debian/Ubuntu 系)服务器上部署自己写的 Python 程序,最符合规范(FHS 标准 + Debian packaging 习惯)的目录一般是以下几种之一,取决于你是“系统级服务”、“个人脚本”还是“应用项目”。
✅ 最规范的目录放置方式(推荐)
1. /opt/your_app/(最推荐给你自己的 Python 项目)
适合:完整项目、Web 程序、后台服务、守护进程等
Ubuntu 官方建议第三方应用(非系统自带)放在 /opt,保持与系统软件隔离。
例如:
/opt/
mypythonapp/
venv/
main.py
config/
logs/
优点:
-
不与系统软件混在一起
-
不会因系统升级被覆盖
-
配合 systemd 非常规范
-
可以给整个应用独立目录(配置/虚拟环境/日志)
绝大多数公司在 Linux 服务器都将自研服务放在
/opt/。
2. /usr/local/bin/(适合单文件 Python 脚本)
适合:可执行的 Python CLI 工具
如果你的程序是一个 Python 脚本,并希望像系统命令一样运行:
sudo cp myscript.py /usr/local/bin/myscript sudo chmod +x /usr/local/bin/myscript
之后就能直接执行:
myscript
特点:
-
用户 PATH 默认包含
/usr/local/bin -
不会被系统包管理覆盖
-
专门用于本机管理员安装的软件
3. /usr/local/lib/mypythonapp/(较规范但使用较少)
如果你想更接近 Debian 软件包布局,可用:
/usr/local/lib/mypythonapp/
但这一般只有“需要编译安装的软件”才这样放,所以不推荐给一般 Python 服务。
🟥 不推荐的目录
以下路径虽然“能用”,但不符合规范,不建议部署:
| 目录 | 理由 |
|---|---|
| /root/ | 只有 root 能访问,不适合服务部署 |
| /home/username/ | 对生产环境服务不规范,权限风险大 |
| /var/www/ | 只适合 web 静态文件,不适合你的 Python 程序 |
| /usr/bin/ 或 /bin/ | 禁止,系统管理,可能被覆盖 |
📌 示例: Python 服务正确部署方式
假设你有 main.py 需要后台运行:
① 放置目录
/opt/swift-monitor/
main.py
utils/
requirements.txt
venv/
logs/
② 创建虚拟环境
cd /opt/swift-monitor python3 -m venv venv source venv/bin/activate pip install -r requirements.txt
③ 配置 systemd 服务
/etc/systemd/system/swift-monitor.service:
[Unit] Description=Swift Log Monitor Service After=network.target [Service] WorkingDirectory=/opt/swift-monitor ExecStart=/opt/swift-monitor/venv/bin/python main.py Restart=always User=root [Install] WantedBy=multi-user.target
启动:
sudo systemctl daemon-reload sudo systemctl enable --now swift-monitor
这是行业通用的最规范做法。
✔️ 最终结论(一句话)
如果你的 Python 程序是一个完整的服务,应该放在
/opt/your_app/;
如果只是一个工具脚本,放/usr/local/bin/。
其它相关推荐:
2、如何在 Ubuntu 24.04 安装 Python 虚拟环境
3、Flask 在 Ubuntu 22.04 初始化数据库过程
评论列表