【Python教程】CentOS系統下Miniconda3安裝與Python項目后臺運行全攻略

一、引言

為了在CentOS系統上高效地開發和運行Python項目,我們常常需要借助Miniconda3來管理Python環境。本文將詳細介紹如何在CentOS系統上安裝Miniconda3,并將Python項目部署到后臺運行。

二、Miniconda3和CentOS系統介紹

Miniconda3介紹

Miniconda是一個輕量級的Anaconda發行版,它只包含了conda、Python以及一些必要的依賴包。相比于Anaconda,Miniconda占用的磁盤空間更小,安裝速度更快,非常適合在資源有限的環境中使用。conda是一個強大的包管理和環境管理工具,它可以幫助我們輕松地創建、管理和切換不同的Python環境,避免不同項目之間的依賴沖突。

三、Miniconda3的安裝步驟

(一)下載Miniconda3安裝包

打開終端,使用wget命令從官方網站下載Miniconda3的安裝包。以下是下載最新版本的Miniconda3的命令:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

(二)運行安裝腳本

下載完成后,運行安裝腳本。在終端中執行以下命令:

bash Miniconda3-latest-Linux-x86_64.sh

運行腳本后,會出現一系列提示信息,按照提示依次按下回車鍵,閱讀許可協議并輸入“yes”同意協議,選擇安裝路徑(默認路徑為用戶的主目錄下的miniconda3文件夾),最后輸入“yes”完成安裝。

(三)激活conda環境

安裝完成后,需要激活conda環境。在終端中執行以下命令:

source ~/.bashrc

然后驗證conda是否安裝成功,執行以下命令查看conda的版本信息:

conda --version

如果輸出了conda的版本號,則說明安裝成功。

四、Python項目的部署過程

(一)創建Python虛擬環境

為了避免不同項目之間的依賴沖突,建議為每個Python項目創建一個獨立的虛擬環境。在終端中執行以下命令創建一個名為myenv的虛擬環境,并指定Python版本為3.8:

conda create -n myenv python=3.8

創建完成后,激活該虛擬環境:

conda activate myenv

(二)安裝項目依賴

在激活的虛擬環境中,使用pip或conda安裝項目所需的依賴包。例如,如果項目依賴于Flask和numpy,可以執行以下命令進行安裝:

pip install flask numpy

或者使用conda進行安裝:

conda install flask numpy

(三)上傳或克隆項目代碼

將本地的Python項目代碼上傳到CentOS服務器,或者使用git命令從代碼倉庫中克隆項目代碼。例如,使用以下命令克隆一個GitHub上的項目:

git clone https://github.com/username/repository.git

(四)配置項目

進入項目目錄,根據項目的需求進行配置。例如,修改配置文件、設置環境變量等。

Python項目部署步驟截圖

五、將Python項目設置為后臺運行

(一)使用nohup命令

nohup命令可以讓進程在終端關閉后繼續運行。在項目目錄下,執行以下命令將Python腳本在后臺運行,并將輸出重定向到一個日志文件中:

nohup python main.py > output.log 2>&1 &

解釋一下命令的各個部分:

  • nohup:忽略掛斷信號,使進程在終端關閉后繼續運行。
  • python main.py:運行Python腳本。
  • >:重定向標準輸出。
  • output.log:指定日志文件名。
  • 2>&1:將標準錯誤輸出重定向到與標準輸出相同的位置。
  • &:使命令在后臺運行。

按下Enter鍵執行命令后,會看到一個輸出類似于nohup: ignoring input and appending output to ‘output.log’的消息,這意味著Python腳本已經在后臺啟動。

(二)使用screen命令

screen是一個終端多路復用器,可以讓我們在斷開終端后重新連接到會話。首先,安裝screen:

sudo yum install screen

然后,啟動一個新的screen會話:

screen -S mysession

在screen會話中運行Python腳本:

python main.py

按下Ctrl+A然后按D來分離screen會話。這樣,即使關閉終端,Python腳本仍然會在后臺運行。如果需要重新連接到screen會話,可以使用以下命令:

screen -r mysession

(三)使用systemd服務

systemd是CentOS的初始化系統,可以用來管理守護進程。創建一個新的服務文件:

sudo vi /etc/systemd/system/my_python_service.service

在文件中添加以下內容:

[Unit] Description=My Python Script After=network.target [Service] ExecStart=/usr/bin/python3 /path/to/main.py WorkingDirectory=/path/to/your/script Restart=always User=your_username [Install] WantedBy=multi-user.target

解釋一下配置文件的各個部分:

  • [Unit]:描述服務的基本信息。
  • Description:服務的描述信息。
  • After:指定服務在網絡服務啟動后啟動。
  • [Service]:描述服務的具體配置。
  • ExecStart:指定要運行的命令。
  • WorkingDirectory:指定腳本的工作目錄。
  • Restart:確保腳本在崩潰或系統重啟后自動重啟。
  • User:指定運行腳本的用戶。
  • [Install]:描述服務的安裝信息。
  • WantedBy:指定服務在多用戶模式下啟動。

保存并退出編輯器,重新加載systemd配置:

sudo systemctl daemon-reload

啟動服務并設置為開機自啟動:

sudo systemctl start my_python_service sudo systemctl enable my_python_service

六、檢查和管理后臺運行項目

(一)檢查項目運行狀態

可以使用以下命令檢查后臺運行的Python進程:

ps aux | grep python

這將列出與Python腳本相關的進程信息,根據輸出找到進程ID(PID)。

(二)查看日志文件

如果使用nohup命令將輸出重定向到了日志文件,可以使用以下命令查看日志文件的內容:

tail -f output.log

這將實時顯示日志文件的最新內容。

(三)停止項目運行

如果需要停止后臺運行的Python項目,可以使用以下命令終止相關進程:

kill <pid>

<pid>替換為實際的進程ID。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/87098.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/87098.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/87098.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【讀點論文】A Survey on Open-Set Image Recognition

A Survey on Open-Set Image Recognition Abstract 開集圖像識別(Open-set image recognition&#xff0c;OSR)旨在對測試集中已知類別的樣本進行分類&#xff0c;并識別未知類別的樣本&#xff0c;在許多實際應用中支持魯棒的分類器&#xff0c;如自動駕駛、醫療診斷、安全監…

使用DuckDB查詢DeepSeek歷史對話

DeepSeek網頁版在左下角個人信息/系統設置的賬號管理頁簽中有個“導出所有歷史對話”功能&#xff0c;點擊“導出”&#xff0c;片刻就能生成一個deepseek_data-2025-06-14.zip的文件&#xff0c;里面有2個json文件&#xff0c;直接用文本編輯器查看不太方便。 而用DuckDB查詢卻…

多線程下 到底是事務內部開啟鎖 還是先加鎖再開啟事務?

前言 不知大家是否有觀察到一個最常見的錯誤&#xff1a; 先開啟事務&#xff0c;然后針對資源加鎖&#xff0c;操作資源&#xff0c;然后釋放鎖&#xff0c;最后提交事務 你是否發現了在這樣的場景下會出現并發安全的問題&#xff1f; &#xff08;提示&#xff1a;一個線程A…

Javascript解耦,以及Javascript學習網站推薦

一、學習網站推薦 解構 - JavaScript | MDN 界面如下&#xff0c;既有知識點&#xff0c;也有在線編譯器執行代碼。初學者可以看看 二、Javascript什么是解構 解構語法是一種 Javascript 語法。可以將數組中的值或對象的屬性取出&#xff0c;賦值給其他變量。它可以在接收數…

Java大模型開發入門 (11/15):讓AI自主行動 - 初探LangChain4j中的智能體(Agents)

前言 在過去的十篇文章里&#xff0c;我們已經打造出了一個相當強大的AI應用。它有記憶&#xff0c;能進行多輪對話&#xff1b;它有知識&#xff0c;能通過RAG回答關于我們私有文檔的問題。它就像一個博學的“學者”&#xff0c;你可以向它請教任何在其知識范圍內的問題。 但…

Qt KDReports詳解與使用

Qt KDReports詳解與使用 一、KD Reports 簡介二、安裝與配置三、核心功能與使用1、創建基礎報表2、添加表格數據3、導出為 PDF4、XML報表定義 四、高級功能1、動態數據綁定2、自定義圖表3、模板化設計4、頁眉頁腳設置 五、常見問題六、總結七、實際應用示例&#xff1a;發票生成…

Spring Cloud 原生中間件

&#x1f4dd; 代碼記錄 Consul&#xff08;服務注冊與發現 分布式配置管理&#xff09; 擁有服務治理功能&#xff0c;實現微服務之間的動態注冊與發現 ?不在使用Eureka&#xff1a;1. 停更進維 2. 注冊中心獨立且和微服務功能解耦 Consul官網 Spring官方介紹 三個注冊中…

CMake實踐: 以開源庫QSimpleUpdater為例,詳細講解編譯、查找依賴等全過程

目錄 1.環境和工具 2.CMake編譯 3.查找依賴文件 3.1.windeployqt 3.2.dumpbin 4.總結 相關鏈接 QSimpleUpdater&#xff1a;解鎖 Qt 應用自動更新的全新姿勢-CSDN博客 1.環境和工具 windows 11, x64 Qt5.12.12或Qt5.15.2 CMake 4.0.2 干凈的windows 7&#xff0c;最好是…

WordToCard制作高考志愿填報攻略小卡片【豆包版】

一、什么是WordToCard WordToCard是一個免費的工具&#xff0c;能夠將Word文檔自動轉換為美觀的知識卡片或圖文海報。以下是它的主要特點&#xff1a; 功能優勢 格式支持&#xff1a;支持標題、列表、表格、LaTeX公式等多種格式。模板豐富&#xff1a;提供多種風格的模板&am…

什么是PostCSS

PostCSS是一個用 JavaScript 工具和插件轉換 CSS 代碼的工具 PostCSS是基于 JavaScript 的 CSS 轉換引擎&#xff0c;通過插件系統對 CSS 進行現代化處理&#xff0c;PostCSS 不是預處理器&#xff0c;而是 CSS 的編譯器工具鏈&#xff0c;如同 Babel 之于 JavaScript&#xf…

游戲引擎學習第315天:取消排序鍵的反向順序

倉庫:https://gitee.com/mrxiao_com/2d_game_8 必須保證代碼能跟上不然調試很麻煩 回顧并為今天定調 目前正處于對引擎中 Z 軸處理方式進行修改的階段。上次我們暫停在一個節點&#xff0c;當時我們希望不再讓所有屏幕上的精靈都必須通過同一個排序路徑進行排序。我們想要將…

MySQL EXPLAIN 詳解

MySQL EXPLAIN 詳解:掌握 SQL 性能優化的關鍵工具 在日常數據庫開發和優化過程中,很多開發者會遇到 SQL 查詢變慢、索引未命中等問題。MySQL 提供了一個非常實用的工具 —— EXPLAIN 關鍵字,它可以幫助我們分析 SQL 查詢的執行計劃,識別潛在的性能瓶頸,從而有針對性地進行…

k8s使用私有harbor鏡像源

前言 在node上手動執行命令可以正常從harbor拉取鏡像&#xff0c;但是用k8s不行&#xff0c;使用kubectl describe pods xxx 提示未授權 unauthorized to access repository。 處理方法 創建一個secrete資源對象。以下示例中 registry-harbor 為secret資源對象的名稱。除了郵…

AI繪畫能發展到企業大規模使用的地步么?

1 技術演進與當前成熟度 AI繪畫技術經歷了從實驗室概念到商業級工具的蛻變過程。早期技術受限于模型坍縮等問題&#xff0c;難以滿足商業需求。關鍵突破出現在新型生成模型的應用&#xff0c;大幅提升生成速度至30秒內&#xff0c;在畫面邏輯性和風格多樣性方面實現質的飛躍。…

使用MyBatis-Plus實現數據權限功能

什么是數據權限 數據權限是指系統根據用戶的角色、職位或其他屬性&#xff0c;控制用戶能夠訪問的數據范圍。與傳統的功能權限&#xff08;菜單、按鈕權限&#xff09;不同&#xff0c;數據權限關注的是數據行級別的訪問控制。 常見的數據權限控制方式包括&#xff1a; 部門數…

大模型——Dify 與 Browser-use 結合使用

大模型——Dify 與 Browser-use 結合使用 Dify 與 Browser-use 的結合使用,能夠通過 AI 決策與自動化交互的協同,構建智能化、場景化的業務流程。 以下是兩者的整合思路與技術落地方案: 一、核心組合邏輯 分工定位 Dify:作為AI模型調度中樞,負責自然語言理解、決策生成、…

transformer demo

import torch import torch.nn as nn import torch.nn.functional as F import math import numpy as np import pytestclass PositionalEncoding(nn.Module):def __init__(self, d_model, max_seq_length5000):super(PositionalEncoding, self).__init__()# 創建位置編碼矩陣p…

centos 8.3(阿里云服務器)mariadb由系統自帶版本(10.3)升級到10.6

1. 備份數據庫 在進行任何升級操作前&#xff0c;務必備份所有數據庫&#xff1a; mysqldump -u root -p --all-databases > all_databases_backup.sql # 或者為每個重要數據庫單獨備份 mysqldump -u root -p db_name1 > db_name1_backup.sql mysqldump -u root -p db…

如何穩定地更新你的大模型知識(算法篇)

目錄 在線強化學習的穩定知識獲取機制:算法優化與數據策略一、算法層面的穩定性控制機制二、數據處理策略的穩定性保障三、訓練過程中的漸進式優化策略四、環境設計與反饋機制的穩定性影響五、穩定性保障的綜合應用策略六、總結與展望通過強化學習來讓大模型學習高層語義知識,…

圖的遍歷模板

圖的遍歷 BFS 求距離 #include<bits/stdc.h>using namespace std;int n, m, k,q[20001],dist[20001]; vector<int> edge[20001];int main(){scanf("%d%d%d",&n,&m,&k);for (int i 1;i<m;i){int x,y;scanf("%d%d",&x,&am…