当前位置:首页 » 《我的小黑屋》 » 正文

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

12 人参与  2024年09月30日 18:00  分类 : 《我的小黑屋》  评论

点击全文阅读


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

一、准备工作

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

二、项目打包

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

安装打包工具
首先,确保你的环境中安装了setuptoolswheel
pip install setuptools wheel
创建setup.py
在项目根目录下创建一个setup.py文件,内容如下:
from setuptools import setup, find_packagessetup(    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文件。

三、部署到服务器

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

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

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

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

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

四、设置服务自启动

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

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

添加以下内容:

[Unit]Description=My Python Project ServiceAfter=network.target[Service]User=userExecStart=/usr/bin/python /path/to/your_script_nameRestart=on-failure[Install]WantedBy=multi-user.target

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

sudo systemctl start your_project_namesudo systemctl enable your_project_name

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

sudo systemctl restart your_project_namesudo systemctl stop your_project_name

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


点击全文阅读


本文链接:http://zhangshiyu.com/post/166738.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1