Ubuntu 22.04 離線環境下 Python 包與 FFmpeg 安裝全攻略?

Ubuntu 22.04 離線環境下 Python 包與 FFmpeg 安裝全攻略
在沒有網絡連接的 Ubuntu 22.04 環境中安裝軟件包常常會遇到各種依賴問題,尤其是 Python 庫和 FFmpeg 這類依賴復雜的工具。
本文將詳細介紹如何在離線環境中安裝指定的 Python 包(包括 OpenCV、PyTorch 等)和 FFmpeg,并解決常見的依賴沖突問題。

離線安裝 Python 包全流程

準備工作:在有網絡的機器上下載包

首先需要在有網絡的 Ubuntu 機器上(建議與目標機器系統版本和架構一致)下載所需的 Python 包及其依賴。
創建下載腳本download_packages.sh:

#!/bin/bash# 創建存放包的目錄
mkdir -p python_packages
cd python_packages# 下載普通Python包
pip download -i https://pypi.tuna.tsinghua.edu.cn/simple \opencv-python \requests \pillow \pyyaml \numpy==1.26.4# 下載PyTorch相關包
pip download --no-cache-dir torch torchvision torchaudio \--index-url https://download.pytorch.org/whl/cu121echo "所有包已下載到 python_packages 目錄"

運行腳本下載包:

chmod +x download_packages.sh
./download_packages.sh

處理依賴沖突問題

在離線安裝過程中,最常見的問題是依賴沖突。當出現類似以下錯誤時:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
tables 3.8.0 requires blosc2~=2.0.0, which is not installed.
tables 3.8.0 requires cython>=0.29.21, which is not installed.
gensim 4.3.0 requires FuzzyTM>=0.4.0, which is not installed.
numba 0.57.1 requires numpy<1.25,>=1.21, but you have numpy 1.26.4 which is incompatible.

我們需要補充下載缺失的依賴包并按正確順序安裝:
創建補充下載腳本download_missing_deps.sh:

#!/bin/bash# 進入之前的包目錄
cd python_packages# 補充下載缺失的依賴
pip download -i https://pypi.tuna.tsinghua.edu.cn/simple \blosc2~=2.0.0 \cython>=0.29.21 \FuzzyTM>=0.4.0 \numba>=0.58.0  # 升級numba到兼容numpy 1.26.4的版本

離線安裝腳本
將下載好的python_packages目錄傳輸到離線機器后,創建安裝腳本install_packages.sh:

#!/bin/bash# 進入包目錄
cd python_packages# 1. 先安裝缺失的基礎依賴
pip install --no-index --find-links=. \blosc2~=2.0.0 \cython>=0.29.21 \FuzzyTM>=0.4.0# 2. 升級numba到兼容numpy 1.26.4的版本(解決核心沖突)
pip install --no-index --find-links=. numba>=0.58.0 --upgrade# 3. 安裝原本需要的包
pip install --no-index --find-links=. \opencv-python \requests \pillow \pyyaml \numpy==1.26.4 \torch torchvision torchaudioecho "所有包安裝完成(已處理依賴沖突)"

運行安裝腳本:

chmod +x install_packages.sh
./install_packages.sh

處理版本沖突的特殊情況

當遇到類似pyfume 0.3.4 requires numpy==1.24.4這樣的版本沖突時,有兩種解決方案:

1. 升級沖突包(優先選擇):

# 在有網絡機器上下載兼容版本
pip download -i https://pypi.tuna.tsinghua.edu.cn/simple pyfume>=0.3.5# 在離線機器上安裝
pip install --no-index --find-links=. pyfume>=0.3.5 --upgrade

2. 降低依賴包版本(備選方案):

# 在離線機器上強制安裝兼容版本
pip install --no-index --find-links=. numpy==1.24.4 --force-reinstall

離線安裝 FFmpeg 的完整方案

下載 FFmpeg 及依賴包

在有網絡的機器上創建下載腳本download_ffmpeg_fixed.sh:

#!/bin/bash# 創建存放deb包的目錄
mkdir -p ffmpeg_debs
cd ffmpeg_debs# 安裝必要工具
sudo apt-get update
sudo apt-get install -y apt-rdepends# 下載ffmpeg及依賴包(直接列出所有需要的包)
apt-get download $(apt-rdepends \ffmpeg \libblas3 \libjack-jackd2-0 \liblapack3 \ocl-icd-libopencl1 \debconf \| grep -v "^ " | sort -u | grep -v "^$")echo "ffmpeg及依賴包已下載到ffmpeg_debs目錄"

運行腳本:

chmod +x download_ffmpeg_fixed.sh
bash download_ffmpeg_fixed.sh  # 明確使用bash執行

解決虛擬包依賴問題

如果遇到類似Can’t select candidate version from package libblas.so.3的錯誤,是因為這些是虛擬包,需要使用實際提供這些功能的包:

虛擬包實際提供者
libblas.so.3libblas3
libjack-0.125libjack-jackd2-0
liblapack.so.3liblapack3
libopencl-1.2-1 和 libopencl1ocl-icd-libopencl1
debconf-2.0debconf

離線安裝 FFmpeg

將ffmpeg_debs目錄傳輸到離線機器后,執行以下命令安裝:

cd ffmpeg_debs
sudo dpkg -i *.deb# 修復可能的依賴問題
sudo apt-get -f install

安裝完成后驗證:

ffmpeg -version

如果顯示版本信息,則表示安裝成功。

總結與注意事項

環境一致性: 確保下載包的機器與離線機器具有相同的操作系統版本和架構;
依賴處理: 離線安裝的核心是完整獲取所有依賴,包括直接依賴和間接依賴;
安裝順序: 先解決依賴沖突,再安裝主要包,可減少很多問題;
虛擬包處理: 對于系統包,要識別虛擬包并使用實際提供者;
版本兼容: 注意 Python 庫之間的版本兼容性,尤其是 numpy 等基礎庫;

通過以上方法,你可以在完全離線的 Ubuntu 22.04 環境中成功安裝所需的 Python 包和 FFmpeg 工具。
如果遇到其他依賴問題,可按照類似思路查找缺失的依賴并補充下載。

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

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

相關文章

ESP32 I2S音頻總線學習筆記(六):DIY藍牙音箱教程

往期相關文章&#xff1a; ESP32 I2S音頻總線學習筆記&#xff08;一&#xff09;&#xff1a;初識I2S通信與配置基礎 ESP32 I2S音頻總線學習筆記&#xff08;二&#xff09;&#xff1a;I2S讀取INMP441音頻數據 ESP32 I2S音頻總線學習筆記&#xff08;三&#xff09;&#…

springboot博客實戰筆記02

一、評論功能&#xff1a; 注意要先登錄之后才能進行評論&#xff0c;所有把評論加入到登錄攔截器當中 Overridepublic void addInterceptors(InterceptorRegistry registry) {//攔截test接口&#xff0c;后續實際遇到需要攔截的接口時&#xff0c;在配置為真正的攔截接口regis…

ThinkPHP+Mysql 靈活用工小程序-技術深度解析與實踐指南

一、模塊設計分包商&#xff1a;稅地注冊公司&#xff0c;用于在當地申請有利的稅收政策&#xff0c;是實際報稅公司。 代理商&#xff1a;代理商可以邀請客戶使用本平臺&#xff0c;平臺會給予代理商一定的服務費差價作為傭金。 客戶&#xff1a;使用本平臺進行工資發放的…

開源數據發現平臺:Amundsen 第1部分:基礎入門與本地環境設置

Amundsen 是一個數據發現和元數據引擎&#xff0c;旨在提高數據分析師、數據科學家和工程師與數據交互時的生產力。目前&#xff0c;它通過索引數據資源&#xff08;表格、儀表板、數據流等&#xff09;并基于使用模式&#xff08;例如&#xff0c;查詢頻率高的表格會優先于查詢…

Linux編程--進程

1、基本概念&#xff1a;進程&#xff1a;是程序動態執行的過程&#xff0c;包括創建、調度、消亡程序&#xff1a;存放在外存中一段數據的集合虛擬地址&#xff1a;進程使用的邏輯地址&#xff0c;有操作系統管理&#xff0c;不直接對應物理內存物理地址&#xff1a;實際內存的…

【開源工具】基于硬件指紋的“一機一碼”軟件授權系統全實現(附完整源碼)

?? 緊急預警!你的軟件正在被白嫖?這套Python軟件加密授權方案讓破解者當場崩潰 ?? 個人主頁:創客白澤 - CSDN博客 ?? 系列專欄:??《Python開源項目實戰》 ?? 熱愛不止于代碼,熱情源自每一個靈感閃現的夜晚。愿以開源之火,點亮前行之路。 ?? 希望大家多多支持…

機器學習算法篇(八)-------svm支持向量機

目錄 ??1. SVM 的核心原理&#xff08;必須掌握&#xff09;?? ??2. Python 中的實踐重點?? ??(1) Scikit-learn 的 SVM 實現?? ??(2) 數據預處理?? ??(3) 模型評估與調優?? ??3. 學習側重點優先級?? ??4. 經典案例實踐方向?? ??5. 學習…

發票查驗接口接收參數說明-PHP語言集成-財務管理

發票驗真服務接口可實時聯網核驗發票真偽&#xff0c;查驗一致時返回全票面信息。其支持核驗增值稅發票管理系統開具發票的真偽&#xff0c;且能進行發票批量查驗&#xff0c;當日開具的發票當日即可查驗。同時&#xff0c;結合發票識別接口可實現自動識別發票信息核驗&#xf…

Uniapp物聯網平臺登錄與溫濕度監測系統

下面是一個完整的Uniapp物聯網平臺實現&#xff0c;包含登錄功能和溫濕度監測系統。這個解決方案采用現代化UI設計&#xff0c;模擬了物聯網平臺的核心功能。文章末尾提供源碼下載。 系統功能說明 這個Uniapp物聯網平臺登錄與溫濕度監測系統包含以下核心功能&#xff1a; 1.…

【企業架構】TOGAF概念之四(終結)

導讀&#xff1a;學習TOGAF&#xff08;The Open Group Architecture Framework&#xff0c;開放組架構框架&#xff09;相關概念的意義和價值&#xff0c;體現在它為企業架構&#xff08;Enterprise Architecture, EA&#xff09;實踐提供了標準化方法論、跨領域協同框架、戰略…

centos 怎么部署 vscode 網頁版

安裝編譯工具 下載適用于 linux 版本的 rpm 格式文件 下載 Visual Studio Tools - 免費安裝 Windows、Mac、Linux 拷貝路徑&#xff0c;下載文件 wget https://vscode.download.prss.microsoft.com/dbazure/download/stable/e3550cfac4b63ca4eafca7b601f0d2885817fd1f/code…

sql的關鍵字 limit 和offset

核心概念LIMIT (限制): 指定查詢最多返回多少行記錄。OFFSET (偏移): 指定在開始返回記錄之前要跳過多少行記錄。它定義了結果集的起始點。核心前提&#xff1a; 必須 使用 ORDER BY 子句來確保分頁結果的順序穩定和可預測。示例&#xff1a; 假設 employees 表有 100 條記錄&a…

git config的配置全局或局部倉庫的參數: local, global, system

git config的范圍參數: local, global, system1. --local: 作用于當前倉庫2. --global: 作用于當前用戶的全局范圍的 Git 倉庫3. --system: 作用于系統范圍內的 Git 倉庫4. 注意事項參考鏈接1. --local: 作用于當前倉庫 --local: 這個參數的作用范圍是當前倉庫。其配置的參數保…

應用系統連達夢數據庫報“服務器模式不匹配”的根源與修復方案

近期遇到很多個應用系統連接達夢數據庫報“服務器模式不匹配”的問題&#xff0c;省流直接說文章結論通常兩種場景 初次連接達夢數據庫時報服務器模式不匹配&#xff0c;可能是配置文件中LOGIN_MODE參數配置與數據庫狀態不一致導致連接失敗應用系統正常運行負載大或者偶發報服務…

git:分支

分支命名可以使用斜杠(/)構建分層命名方案不能以減號(-)開頭&#xff0c;分層的命名不能以點(.)開頭不能使用連接兩個點(.)不能包括空格或其他空白字符以及~ ^ : ? * [列出分支名稱 git branch 列出本地版本庫的分支git branch -r 列出遠程跟蹤分支git branch -a …

T05_卷積神經網絡

全連接網絡存的弊端 以MINST數字識別為例&#xff0c;創建一個4層全連接網絡層&#xff0c;輸入為28x28&#xff0c;中間三個隱藏層的節點數都是 256&#xff0c;輸出節點數是10。通過summary()函數打印出模型每一層的參數量&#xff0c;計算總的參數量超過34萬個網絡參數&…

區塊鏈在可信空間智能合約中的應用

區塊鏈在可信數據空間的智能合約應用,通過去中心化信任機制、自動化執行、可驗證計算等特性,正在重塑數據存儲、共享、交易和治理的模式。以下是其核心應用方向、關鍵技術及落地案例的深度解析: 一、核心應用方向 1. 數據確權與授權管理 應用場景 個人數據主權:用戶通過智…

pycharm配置python解釋器教程

一個解釋器對應一個環境&#xff0c;無論是conda環境或是Python環境。python環境的解釋器的路徑形如"D:\Python3.12\python.exe"&#xff0c;conda環境的解釋器的路徑形如"D:\anaconda3\envs\opencv\python.exe"。 如何在Pycharm中設置解釋器 打開pycharm&…

C#教程之NPOI讀寫excel文件XLS,XLSX格式

NPOI 是開源的 POI 項目的.NET版&#xff0c;可以用來讀寫Excel&#xff0c;Word&#xff0c;PPT文件。僅需處理 XLS/XLSX 格式的文本和數字讀寫&#xff0c;最少需要加載 2 個核心 DLL&#xff1a;NPOI.dll包含所有格式的通用接口&#xff08;IWorkbook、ISheet、IRow、ICell …

Perforce P4 Git 連接器

Perforce P4 Git連接器將Git代碼庫與數字資產集中存儲于Perforce P4&#xff08;前身為Helix Core&#xff09;&#xff0c;為所有數字資產&#xff08;源碼二進制文件&#xff09;構建單一事實來源。 突破代碼庫與文件限制 當藝術家、開發者及工程師組成的大型團隊僅使用Git時…