1. 保留系统 Python,给项目单独建环境#
Linux 的包管理器和系统工具可能依赖自带 Python。不要把 /usr/bin/python3 替换成网上下载的版本,也不要用 sudo pip install 把应用依赖混进系统环境。一个项目一个虚拟环境,升级和删除都更清楚。
python3 --version
command -v python3
cat /etc/os-release项目若要求特定版本,先核对官方支持,再使用发行版支持的包、独立安装路径或容器。虚拟环境隔离依赖,但不等同于安全沙箱。
2. 创建虚拟环境并确认解释器#
Ubuntu/Debian 可先安装发行版提供的 venv 组件。下面在普通用户目录创建示例项目,目录名可调整。
sudo apt update
sudo apt install python3-venv
mkdir -p "$HOME/my-python-app"
cd "$HOME/my-python-app"
python3 -m venv .venv
source .venv/bin/activate
python -c 'import sys; print(sys.executable)'
python -m pip --version解释器路径应指向当前项目的 .venv。看到 externally-managed-environment 时,优先检查是否忘记进入虚拟环境,不要直接使用破坏系统包保护的选项。
3. 安装项目依赖并锁定版本#
已有项目先阅读 pyproject.toml、requirements.txt 与锁文件,使用项目指定工具。普通 requirements 项目可运行:
python -m pip install -r requirements.txt
python -m pip check文件不存在时先建立自己的依赖清单,不要复制别人的完整环境。只从受信任来源安装包,核对名称,防止装错同名或拼写相近包。版本锁定帮助重现环境,但仍需定期更新安全补丁。
4. 用 Pylint 找问题,再运行实际测试#
python -m pip install pylint
python -m pylint app.py
python -m compileall -q app.py把 app.py 换成自己的文件。Pylint 的命名、风格和静态分析提示需要结合项目判断,不能为了分数把所有提示关闭。compileall 能发现部分语法错误,但不能证明数据库、网络和业务逻辑正确。
涉及网络调用时配置超时和错误处理,API Key 从受限环境配置读取,不写进脚本和日志。调试完成再运行项目自己的测试或一条真实但低影响的业务流程。
5. 长期运行使用明确路径#
systemd 中的 ExecStart 指向 /实际/项目/.venv/bin/python,WorkingDirectory 指向项目目录,使用普通服务用户。不要依赖交互 shell 中的 source activate,定时任务和服务不会自动继承你的终端环境。
Conda 适合需要它管理复杂科学计算依赖的项目;创建独立环境并记录配置即可,不必为了一个简单脚本安装整套大型发行版。虚拟环境通常重建比跨机器复制更可靠。
部署方法见后台服务,依赖升级后再检查启动、日志与实际产物。
完成后检查
退出再重新激活环境,确认程序使用的解释器与 pip 属于同一环境。