centos

CentOS Python项目如何打包部署

小樊
36
2025-07-17 00:16:40
栏目: 编程语言

在CentOS系统上部署Python项目通常涉及以下几个步骤:

环境准备

  1. 安装Python和pip

    sudo yum install python3 -y
    sudo yum install python3-pip -y
    
  2. 创建虚拟环境(可选):

    python3 -m venv myenv
    source myenv/bin/activate
    
  3. 安装项目依赖

    在项目根目录下,确保有一个requirements.txt文件列出所有依赖项。然后使用以下命令安装依赖:

    pip install -r requirements.txt
    

打包项目

  1. 使用PyInstaller打包

    • 创建PyInstaller配置文件:

      pyi-makespec --onefile your_script.py
      
    • 生成可执行文件:

      pyinstaller your_script.spec
      
    • 测试打包后的可执行文件:

      ./dist/your_script
      
  2. 使用setuptools打包

    • 创建setup.py文件:

      from setuptools import setup, find_packages
      
      setup(
          name="your_project_name",
          version="0.1",
          packages=find_packages(),
          install_requires=[
              # 依赖项列表
          ],
      )
      
    • 打包项目:

      python setup.py sdist bdist_wheel
      

部署项目

  1. 使用Docker进行部署

    • 创建Dockerfile:

      # 使用Python官方镜像作为基础镜像
      FROM python:3.8
      
      # 设置工作目录
      WORKDIR /app
      
      # 将当前目录下的所有文件复制到工作目录
      COPY . .
      
      # 安装项目依赖
      RUN pip install -r requirements.txt
      
      # 暴露端口
      EXPOSE 8000
      
      # 启动项目
      CMD ["python", "app.py"]
      
    • 构建Docker镜像:

      sudo docker build -t python-project .
      
    • 推送镜像到Docker Hub(可选):

      docker login
      docker tag python-project your_dockerhub_username/python-project:tag
      docker push your_dockerhub_username/python-project:tag
      
    • 在线上服务器上拉取镜像并运行容器:

      docker pull your_dockerhub_username/python-project:tag
      docker run -d -p 8000:8000 your_dockerhub_username/python-project:tag
      
  2. 使用Kubernetes进行部署(可选):

    • 安装Kubernetes和Docker:

      sudo yum install docker -y
      sudo systemctl start docker
      sudo yum install kubernetes -y
      sudo systemctl start kubelet
      
    • 创建Kubernetes配置文件(例如deployment.yamlservice.yaml),并使用kubectl命令创建Deployment和Service。

  3. 使用systemd配置服务(可选):

    • 创建一个systemd服务文件,例如/etc/systemd/system/myproject.service

      [Unit]
      Description=My Python App
      After=network.target
      
      [Service]
      User=your_user
      Group=www-data
      WorkingDirectory=/path/to/your/app
      ExecStart=/path/to/your/venv/bin/gunicorn app:app
      Restart=always
      
      [Install]
      WantedBy=multi-user.target
      
    • 启用并启动服务:

      sudo systemctl daemon-reloadsudo systemctl enable myproject.service
      sudo systemctl start myproject.service
      

通过以上步骤,您可以在CentOS系统上成功打包和部署Python项目。

0
看了该问题的人还看了