Python项目打包部署到服务器的详细指南

ops/2024/11/14 19:41:00/

摘要:本文将详细介绍如何将Python项目打包成可执行文件,并将其部署到服务器上。通过本文的学习,你将掌握Python项目打包和部署的整个过程。

一、准备工作

  1. 开发环境:本文以PyCharm为例,其他IDE或文本编辑器同理。
  2. 服务器:本文以Ubuntu为例,其他Linux系统同理。
  3. Python项目:已完成开发并能在本地正常运行。

二、项目打包

Python项目打包通常使用pip安装依赖,并通过setuptools创建可执行的脚本。

  1. 安装打包工具
    首先,确保你的环境中安装了setuptoolswheel
pip install setuptools wheel
  1. 创建setup.py
    在项目根目录下创建一个setup.py文件,内容如下:
python">from setuptools import setup, find_packages
setup(name='your_project_name',version='0.1.0',packages=find_packages(),install_requires=[# 这里填写项目依赖的包,例如'Flask==1.1.2','requests==2.25.1',],entry_points={'console_scripts': ['your_script_name=your_package.module:main_function',],},
)

替换your_project_nameyour_script_nameyour_package.modulemain_function为你的项目信息。
3. 打包项目
在命令行中,进入项目根目录,执行以下命令进行打包:

python setup.py sdist bdist_wheel

打包完成后,你会在dist目录下找到.tar.gz.whl文件。

三、部署到服务器

  1. 上传打包文件到服务器
    使用SCP命令将打包好的文件上传到服务器
scp dist/your_project_name-0.1.0-py3-none-any.whl user@your_server_ip:/path/to/deploy
  1. 安装项目依赖
    连接到服务器,并安装项目依赖:
ssh user@your_server_ip
cd /path/to/deploy
pip install your_project_name-0.1.0-py3-none-any.whl

或者,如果你上传了.tar.gz文件,可以使用以下命令安装:

pip install your_project_name-0.1.0.tar.gz
  1. 运行项目
    安装完成后,你可以直接运行你的脚本:
your_script_name

如果需要后台运行,可以使用nohup&

nohup your_script_name &
  1. 查看运行日志
    查看运行日志:
tail -f nohup.out

四、设置服务自启动

为了使项目在服务器启动时自动运行,可以创建一个系统服务。

  1. 创建服务文件
sudo nano /etc/systemd/system/your_project_name.service

添加以下内容:

[Unit]
Description=My Python Project Service
After=network.target
[Service]
User=user
ExecStart=/usr/bin/python /path/to/your_script_name
Restart=on-failure
[Install]
WantedBy=multi-user.target

替换user/path/to/your_script_name为你的用户名和脚本路径。
2. 启动并使服务自启动

sudo systemctl start your_project_name
sudo systemctl enable your_project_name

现在,你的Python项目应该已经成功部署到服务器并配置为自启动服务。如果需要重启或停止服务,可以使用以下命令:

sudo systemctl restart your_project_name
sudo systemctl stop your_project_name

通过以上步骤,你的Python项目已经可以稳定运行在服务器上了。


http://www.ppmy.cn/ops/94076.html

相关文章

前端学习笔记-JS篇-01

JS基础Day1-01-必看-基本软件以及准备工作_哔哩哔哩_bilibili JavaScript介绍 是什么 1.JavaScript (是什么?) 是一种运行在客户端(浏览器)的编程语言,实现人机交互效果2.作用(做什么?) 网页特效(监听用户的一些行为让网页作出对应的反馈)表单验证(针对表单…

【xilinx】MPSoC/RFSoC 设计ARM Cortex A 处理器 (TF-A) 可信固件中可能出现缓冲区溢出问题

概括 埃尔朗根-纽伦堡大学的研究人员在一篇题为“EL3XIR:模糊测试 COTS 安全监视器”的论文中发现了使用 ARM 可信固件(“TF-A”)的 AMD Zynq UltraScale MPSoC/RFSoC 中的一个潜在漏洞。 论文描述了 TF-A 中的 pm_api_get_name 函数缺少对…

序列建模之循环和递归网络 - 循环神经网络篇

序言 在探索序列数据的深层规律时,循环神经网络( RNN \text{RNN} RNN)以其独特的设计思想成为了序列建模领域的中流砥柱。与传统的神经网络不同, RNN \text{RNN} RNN引入了循环结构,使得网络能够处理任意长度的序列数…

Navicat Premium15 下载与安装(免费版)以及链接SqlServer数据库

转自:https://blog.csdn.net/m0_75188141/article/details/139842565

云动态摘要 2024-08-14

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 注册阿里云免费领云服务器_云服务器ECS_阿里云 阿里云 2024-08-14 云上试用新玩法,个人享300元免费额度,企业享660元免费额度,多种规格随心试 [免费体验…

期权快到期卖不出去了怎么办 ?

期权在最后交易日如果平仓卖不出去,说明没有市场参与者愿意以你的报价买入该期权。这种情况通常出现在期权价值极低,接近于0,或者期权已经深度虚值,即行权价远离当前市场价格而且剩余时间已非常有限,使得该期权的内在价…

springboot的学习(一):springboot的基础

简介 springboot的基础的知识点的学习总结 springboot 设计目的是为了简化spring应用的初始搭建和开发过程。 简单例子 new project,一般用这个阿里的地址:https://start.aliyun.com/ 点击next,选择jdk版本 点击next,选择模…

区块链通证系统源码

区块链通证系统是一个基于区块链技术的系统,主要用于实现数字资产的发行、流通和管理。以下是对区块链通证系统功能的详细解释 1、通证发行与管理 发行通证:系统可以根据业务需求,设定通证的发行量、发行方案等,并通过智能合约实…