国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用pipreqs生成requirements文件,并在服務器(矩池云)上通過requirements文件安裝環(huán)境采坑記錄

這篇具有很好參考價值的文章主要介紹了使用pipreqs生成requirements文件,并在服務器(矩池云)上通過requirements文件安裝環(huán)境采坑記錄。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

問題描述

今天用requirements文件想在服務器上安裝環(huán)境,遇到了許多的坑,在這里記錄一下,有需要的朋友可以看看這里有沒有記錄你存在的問題。

問題1:

報錯內(nèi)容:
ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: '/home/ktietz/src/ci/alabaster 161192154452/work!

在網(wǎng)上看到的方法:
在終端上,使用這段代碼在自己電腦上的生成requirements文件

pip freeze > requirements.txt

然后將requirement.txt文件上傳到服務器上,在服務器上的終端運行下面這段代碼,在服務器上安裝對應的環(huán)境。

pip install -r requirements.txt

這時候報錯如下圖
pipreqs,python,深度學習,服務器,python,深度學習,機器學習
報錯內(nèi)容是不存在這個路徑,所以我打開requirement.txt文件,發(fā)現(xiàn)文件內(nèi)容如下,發(fā)現(xiàn)這個生成的txt文件并不是我們想要的格式,還生成了一堆奇怪的地址,導致在服務器上無法進行環(huán)境安裝。
pipreqs,python,深度學習,服務器,python,深度學習,機器學習
于是我又查閱網(wǎng)上的資料,有人說可以在終端里運行下面這行代碼

pipreqs ./ --encoding=utf-8

注意到這里pipreqs也是一個包,需要使用pip的方式來安裝,這就產(chǎn)生了問題二

問題2:

報錯內(nèi)容:
pipreqs : 無法將“pipreqs”項識別為 cmdlet、函數(shù)、腳本文件或可運行程序的名稱。請檢查名稱的拼寫,如果包括路徑,請確保路徑正確,然后再試一次。

發(fā)現(xiàn)問題

我用的anaconda來管理的環(huán)境,我一共有兩個環(huán)境,一個是自帶的base環(huán)境,一個是我創(chuàng)建的DL環(huán)境(deep learning),打開anaconda promot,分別輸入以下代碼,分別表示進入DL環(huán)境,并在DL環(huán)境中安裝pipreqs這個包

conda activate DL
pip install pipreqs

之后我在vscode的終端中運行

pipreqs ./ --encoding=utf-8

結(jié)果報錯:(圖中輸入的是pipreqs ./,如果輸入pipreqs ./ --encoding=utf-8一樣報錯)
pipreqs,python,深度學習,服務器,python,深度學習,機器學習
查找網(wǎng)上資料,說遇到這種情況可以輸入以下代碼來解決:

pip3 show -f pipreqs

然而,在我輸入這段代碼后,出現(xiàn)了新的報錯
pipreqs,python,深度學習,服務器,python,深度學習,機器學習
我明明已經(jīng)在DL環(huán)境里裝了pipreqs,而且我vscode的解釋器里面也設(shè)置的是DL環(huán)境,為何說找不到這個包?

問題解決

我猜測,我是在vscode的終端中運行的代碼,而終端可能與我選擇的解釋器無關(guān),所以我是不是在base環(huán)境里裝一個pipreqs包就可以了呢?
于是,我在anaconda promot中輸入以下代碼,分別表示退出當前環(huán)境(DL),然后在base環(huán)境中裝pipreqs包

conda deactivate
pip install pipreqs

在base環(huán)境中安裝pipreqs包成功之后,輸入下面代碼

pipreqs ./ --encoding=utf-8

之后等待時間有點長,可能需要二三十秒,在文件夾中生成了一個requirements.txt文件(如果文件夾中已有requirements.txt文件他會報錯,需要先把原有的文件刪掉),我們打開這個文件,如下圖所示。
pipreqs,python,深度學習,服務器,python,深度學習,機器學習
這里有一些問題,為何一個包會出現(xiàn)兩個版本?
于是我查了下我base環(huán)境下和DL環(huán)境下的matplotlib包的版本

pipreqs,python,深度學習,服務器,python,深度學習,機器學習
pipreqs,python,深度學習,服務器,python,深度學習,機器學習
發(fā)現(xiàn),果然是兩個環(huán)境中版本不一樣,它在生成的時候都生成了。
然后我查了torch包,也是相同的情況,然而,numpy包卻情況不同
pipreqs,python,深度學習,服務器,python,深度學習,機器學習
pipreqs,python,深度學習,服務器,python,深度學習,機器學習
在兩個環(huán)境中,numpy的版本均是1.24.3,那么為何requirement.txt里面卻有一個1.23.5的版本?
這個可能是個bug,目前還不知道為什么,我采取的方式是手動刪除一個版本,這就引出了問題3

問題3:

報錯內(nèi)容:
ERROR: Cannot install matplotlib3.7.0 and matplotlib3.7.1 because these package versions have conflicting dependencies.

我是通過vscode的ssh連接的遠程,我在遠程界面輸入

pip install -r requirements.txt

然后報錯如下圖所示:
pipreqs,python,深度學習,服務器,python,深度學習,機器學習

所以說明如果requirement.txt文件里面有兩個版本的,會沖突,所以需要刪掉沖突的版本,如下圖
pipreqs,python,深度學習,服務器,python,深度學習,機器學習
然后出現(xiàn)問題4,仍然會報錯

問題4:

報錯內(nèi)容:
RROR: Could not find a version that satisfies the requirement torch2.0.1+cu117 (from versions: 1.7.1, 1.8.0, 1.8.1, 1.9.0, 1.9.1, 1.10.0, 1.10.1, 1.10.2, 1.11.0, 1.12.0, 1.12.1, 1.13.0, 1.13.1, 2.0.0, 2.0.1)ERROR: No matching distribution found for torch2.0.1+cu117
這個報錯如下圖所示:

pipreqs,python,深度學習,服務器,python,深度學習,機器學習

所以說說明torch2.0.1+cu117這個版本無法安裝,這提示我們需要把后綴+cu117刪除,此外torchvision0.15.2+cu117 這句話中的+cu117也需要刪除

刪除之后再執(zhí)行

pip install -r requirements.txt

出現(xiàn)問題5報錯

問題5:

報錯內(nèi)容:
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.torchaudio 2.0.1 requires torch==2.0.0, but you have torch 2.0.1 which is incompatible.

問題5報錯如下:

pipreqs,python,深度學習,服務器,python,深度學習,機器學習
我安裝的是torch2.0.1,但是他這里提示需要torch2.0.0版本,所以有錯。
原因是我在pip的時候沒有安裝python解釋器,無法選擇代碼的解釋器而導致的。

解決方案

在服務其中安裝python插件,如下圖所示
pipreqs,python,深度學習,服務器,python,深度學習,機器學習
安裝之后,將解釋器選擇為矩池云中有的這個python3.10.9這個版本(其他版本行不行我暫時沒試)

pipreqs,python,深度學習,服務器,python,深度學習,機器學習
關(guān)鍵:然后先點擊右上角運行一次代碼,一定要先運行一次代碼!??!,此時他會提示沒有安裝相關(guān)的包,然后在終端輸入

pip install -r requirements.txt

這是發(fā)現(xiàn)沒有報錯,安裝成功??!
隨后即可正常運行代碼

關(guān)鍵?。?!正常安裝成功的操作流程

下面總結(jié)一下使用vscode ssh 在矩池云服務器上配置環(huán)境的正確流程。

  1. 租用矩池云服務器,通過vscode和ssh連接到服務器。這一步可參考矩池云的官方文檔矩池云文檔

  2. 在自己的電腦上使用以下代碼生成requirements文件(需要先安裝pipreqs包),刪除版本沖突的內(nèi)容,此外出現(xiàn)問題請參考上面幾小節(jié)提到的。

pipreqs ./ --encoding=utf-8
  1. 將生成的requirements.txt文件上傳至矩池云網(wǎng)盤,通過vscode和ssh連接到服務器之后,先安裝python插件,選擇解釋器,再運行你想要運行的文件,此時會提示沒有相關(guān)的module,是因為我們還沒有配環(huán)境。但是一定要先運行一次文件!?。?/strong>。

  2. 運行文件過后,在終端中輸入,此時即可成功安裝

pip install -r requirements.txt
  1. 此外一些vscode擴展,比如ipykernel(使代碼可以在交互環(huán)境中運行),在需要的時候,vscode會提醒你進行安裝

  2. 配置完成之后不要忘了在矩池云中保存環(huán)境,方便下次使用。

pipreqs,python,深度學習,服務器,python,深度學習,機器學習

備注

1.我為何不在vscode的終端中裝pipreqs包?

理論上,在vscode中輸入以下代碼,也可以裝pipreqs這個包

pip install pipreqs

但是我實測,在vscode中輸入代碼裝包,會出現(xiàn)無法連接的情況,導致超時。

2.在vscode終端中輸入conda list 和 在anaconda promot中輸入conda list存在不同

3.矩池云查看進程輸出日志

輸入以下代碼可以查看終端中的輸出日志

tail -f /root/log/run.log

這句話加了-f,意思是讀取正在改變的日志,而且實時更新也就是循環(huán)讀取,這也就意味著輸入此段代碼后,輸入別的代碼都沒用,因為終端正在讀取此日志。
需要配合ctrl+c退出正在查看狀態(tài)。

此外如下圖所示,是矩池云提供的讀取日志的方法,這種方法是查看一次日志,不會進入正在讀取狀態(tài),效果等價于tail /root/log/run.log

pipreqs,python,深度學習,服務器,python,深度學習,機器學習
注意,每一次運行都會生成一個輸出日志。

終端常用命令

查看CUDA版本

nvidia-smi

顯示當前文件夾下的內(nèi)容

dir

ls

進入某一目錄(舉例,進入/root/log)

cd /root/log

進入當前盤根目錄

cd\

進入上一級目錄

cd..

查看輸出日志(循環(huán)讀取)

tail -f /root/log/run.log

查看輸出日志(非循環(huán)讀?。?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-820878.html

tail /root/log/run.log

到了這里,關(guān)于使用pipreqs生成requirements文件,并在服務器(矩池云)上通過requirements文件安裝環(huán)境采坑記錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包