如何在CentOS上使用Python虚拟机
导读:在 CentOS 上使用 Python 虚拟环境 一、概念澄清 在 Linux 语境中,“虚拟机”通常指 VMware/VirtualBox 里运行的 CentOS 系统;而“Python 虚拟机”在日常表达中多指 Python 虚拟环境...
在 CentOS 上使用 Python 虚拟环境
一、概念澄清
- 在 Linux 语境中,“虚拟机”通常指 VMware/VirtualBox 里运行的 CentOS 系统;而“Python 虚拟机”在日常表达中多指 Python 虚拟环境(隔离项目依赖),并非运行 Python 字节码的虚拟机。
- 本文按“在 CentOS 虚拟机内创建与管理 Python 虚拟环境”来操作;若你指的是在宿主机上用虚拟机运行 CentOS,再在虚拟机内做 Python 开发,步骤相同。
二、准备与安装 Python 3
- 更新系统与安装编译依赖(以 CentOS 7 为例):
- 安装 EPEL 源与基础工具:
sudo yum -y install epel-release gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite-devel openssl-devel libffi-devel
- 安装 EPEL 源与基础工具:
- 编译安装 Python 3.8(推荐方式,便于多版本共存):
- 下载与解压:
wget https://www.python.org/ftp/python/3.8.9/Python-3.8.9.tgz & & tar -zxvf Python-3.8.9.tgz & & cd Python-3.8.9 - 配置与编译:
sudo ./configure --enable-optimizations --with-ssl --prefix=/usr/local/python3 & & sudo make & & sudo make altinstall - 说明:使用
make altinstall可避免替换系统自带的 python2,便于共存。
- 下载与解压:
- 验证安装:
/usr/local/python3/bin/python3.8 -V应显示 Python 3.8.9。
三、创建与管理 Python 虚拟环境
- 方式一(系统自带 venv,轻量稳定)
- 创建:
/usr/local/python3/bin/python3.8 -m venv ~/venvs/myproj - 激活:
source ~/venvs/myproj/bin/activate - 退出:
deactivate
- 创建:
- 方式二(virtualenv/virtualenvwrapper,便于多环境切换)
- 安装:
pip3 install -U virtualenv virtualenvwrapper - 配置(写入
~/.bashrc):export WORKON_HOME=$HOME/.virtualenvsexport VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3source /usr/local/python3/bin/virtualenvwrapper.sh- 使配置生效:
source ~/.bashrc
- 常用命令:
- 新建:
mkvirtualenv -p python3 myproj - 列出:
lsvirtualenv -b - 切换:
workon myproj - 退出:
deactivate - 删除:
rmvirtualenv myproj
- 新建:
- 安装:
- 说明:上述两种方式的本质都是创建隔离的 site-packages,解决依赖冲突;大型项目或需要频繁切换环境时,推荐 virtualenvwrapper。
四、将项目做成服务并开机自启
- 准备启动脚本
~/start.sh(示例使用 Gunicorn 托管 Flask/Django):- 示例内容:
#!/usr/bin/env bashsource ~/venvs/myproj/bin/activatecd /opt/myapp & & exec gunicorn -b 0.0.0.0:8000 app:app
- 赋权:
chmod +x ~/start.sh
- 示例内容:
- 创建 systemd 服务
/etc/systemd/system/myapp.service:- 示例内容:
[Unit]Description=My Python AppAfter=network.target[Service]Type=simpleUser=centosWorkingDirectory=/opt/myappExecStart=/bin/bash /home/centos/start.shRestart=always[Install]WantedBy=multi-user.target
- 示例内容:
- 启用与启动:
sudo systemctl daemon-reloadsudo systemctl enable --now myapp.service- 查看日志:
journalctl -u myapp.service -f
- 防火墙放行(若启用 firewalld):
sudo firewall-cmd --permanent --add-port=8000/tcp & & sudo firewall-cmd --reload
- 说明:若你使用 Flask 开发,生产环境不建议直接用内置服务器,推荐使用 Gunicorn/uwsgi;上面的服务单元可按需替换为你的实际启动命令。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在CentOS上使用Python虚拟机
本文地址: https://pptw.com/jishu/770708.html
