首页主机资讯如何在CentOS上使用Python虚拟机

如何在CentOS上使用Python虚拟机

时间2025-12-12 17:39:03发布访客分类主机资讯浏览604
导读:在 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
  • 编译安装 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/.virtualenvs
      • export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
      • source /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 bash
      • source ~/venvs/myproj/bin/activate
      • cd /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 App
      • After=network.target
      • [Service]
      • Type=simple
      • User=centos
      • WorkingDirectory=/opt/myapp
      • ExecStart=/bin/bash /home/centos/start.sh
      • Restart=always
      • [Install]
      • WantedBy=multi-user.target
  • 启用与启动:
    • sudo systemctl daemon-reload
    • sudo 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
CentOS中Python安装有哪些注意事项 Python环境变量在CentOS如何配置

游客 回复需填写必要信息