Python項(xiàng)目打包部署到服務(wù)器的實(shí)現(xiàn)
一、準(zhǔn)備工作
- 開發(fā)環(huán)境:本文以PyCharm為例,其他IDE或文本編輯器同理。
- 服務(wù)器:本文以Ubuntu為例,其他Linux系統(tǒng)同理。
- Python項(xiàng)目:已完成開發(fā)并能在本地正常運(yùn)行。
二、項(xiàng)目打包
Python項(xiàng)目打包通常使用pip安裝依賴,并通過setuptools創(chuàng)建可執(zhí)行的腳本。
- 安裝打包工具
首先,確保你的環(huán)境中安裝了setuptools和wheel:
pip install setuptools wheel
- 創(chuàng)建
setup.py在項(xiàng)目根目錄下創(chuàng)建一個(gè)setup.py文件,內(nèi)容如下:
from setuptools import setup, find_packages
setup(
name='your_project_name',
version='0.1.0',
packages=find_packages(),
install_requires=[
# 這里填寫項(xiàng)目依賴的包,例如
'Flask==1.1.2',
'requests==2.25.1',
],
entry_points={
'console_scripts': [
'your_script_name=your_package.module:main_function',
],
},
)
替換your_project_name、your_script_name、your_package.module和main_function為你的項(xiàng)目信息。
3. 打包項(xiàng)目
在命令行中,進(jìn)入項(xiàng)目根目錄,執(zhí)行以下命令進(jìn)行打包:
python setup.py sdist bdist_wheel
打包完成后,你會(huì)在dist目錄下找到.tar.gz和.whl文件。
三、部署到服務(wù)器
- 上傳打包文件到服務(wù)器
使用SCP命令將打包好的文件上傳到服務(wù)器:
scp dist/your_project_name-0.1.0-py3-none-any.whl user@your_server_ip:/path/to/deploy
- 安裝項(xiàng)目依賴
連接到服務(wù)器,并安裝項(xiàng)目依賴:
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
- 運(yùn)行項(xiàng)目
安裝完成后,你可以直接運(yùn)行你的腳本:
your_script_name
如果需要后臺(tái)運(yùn)行,可以使用nohup和&:
nohup your_script_name &
- 查看運(yùn)行日志
查看運(yùn)行日志:
tail -f nohup.out
四、設(shè)置服務(wù)自啟動(dòng)
為了使項(xiàng)目在服務(wù)器啟動(dòng)時(shí)自動(dòng)運(yùn)行,可以創(chuàng)建一個(gè)系統(tǒng)服務(wù)。
- 創(chuàng)建服務(wù)文件
sudo nano /etc/systemd/system/your_project_name.service
添加以下內(nèi)容:
[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為你的用戶名和腳本路徑。
啟動(dòng)并使服務(wù)自啟動(dòng)
sudo systemctl start your_project_name sudo systemctl enable your_project_name
現(xiàn)在,你的Python項(xiàng)目應(yīng)該已經(jīng)成功部署到服務(wù)器并配置為自啟動(dòng)服務(wù)。如果需要重啟或停止服務(wù),可以使用以下命令:
sudo systemctl restart your_project_name sudo systemctl stop your_project_name
通過以上步驟,你的Python項(xiàng)目已經(jīng)可以穩(wěn)定運(yùn)行在服務(wù)器上了。
到此這篇關(guān)于Python項(xiàng)目打包部署到服務(wù)器的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python項(xiàng)目打包部署到服務(wù)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Tensorflow全局設(shè)置可見GPU編號(hào)操作
這篇文章主要介紹了Tensorflow全局設(shè)置可見GPU編號(hào)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06
django之對(duì)django內(nèi)置的User模型進(jìn)行自定義擴(kuò)展方式
這篇文章主要介紹了django之對(duì)django內(nèi)置的User模型進(jìn)行自定義擴(kuò)展方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
python pygame實(shí)現(xiàn)滾動(dòng)橫版射擊游戲城市之戰(zhàn)
這篇文章主要為大家詳細(xì)介紹了python pygame實(shí)現(xiàn)滾動(dòng)橫版射擊游戲城市之戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
Python使用__slots__優(yōu)化內(nèi)存的實(shí)戰(zhàn)指南
在構(gòu)建百萬對(duì)象級(jí)別的實(shí)時(shí)風(fēng)控系統(tǒng)時(shí),內(nèi)存占用往往成為瓶頸,__slots__ 作為 Python 類定義中的一項(xiàng)機(jī)制能否有效壓縮內(nèi)存,下面小編就和大家詳細(xì)介紹一下吧2026-04-04
python釘釘機(jī)器人運(yùn)維腳本監(jiān)控實(shí)例
今天小編就為大家分享一篇python釘釘機(jī)器人運(yùn)維腳本監(jiān)控實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-02-02
python獲取局域網(wǎng)占帶寬最大3個(gè)ip的方法
這篇文章主要介紹了python獲取局域網(wǎng)占帶寬最大3個(gè)ip的方法,涉及Python解析URL參數(shù)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
優(yōu)化IntelliJ IDEA對(duì)Python的提示功能方式
本文主要介紹了IntelliJ IDEA對(duì)Python代碼提示不友好、開發(fā)效率低的問題,并提供了一系列優(yōu)化方案,包括正確配置Python解釋器、安裝Python插件、同步項(xiàng)目索引、檢查代碼規(guī)范、更新IDEA版本等2026-05-05

