Virtualenv創建的環境拷貝到新的目錄后也能用,只需要修改路徑
- 舉個例子
- 核心:環境直接拷貝到新的目錄能夠生效的根源是編譯器路徑正確
- 解決辦法
舉個例子
假設環境名為:env_nmf
該環境原始的目錄是:/home/amily/workspace/env_nmf
將環境拷貝到這個目錄:/data3/amily/sourcecode/env_nmf
核心:環境直接拷貝到新的目錄能夠生效的根源是編譯器路徑正確
對于virtualenv創建的環境,其bin目錄下的每一個可執行檔案,會指定程式被執行時所使用的編譯器所在的路徑,因此為了能夠保證這些可執行檔案能夠正常的被呼叫執行,需要批量的修改檔案中指定編譯器的路徑為正確的路徑即可生效,
下圖紅框內就是env_nmf/bin/f2py3.6這個可執行檔案所指定的編譯器(你用vi來查看該目錄下其他檔案也會有類似下圖這句#!),如果我們直接通過source激活這個環境來使用python是會報錯的,主要原因就是環境中使用的路徑還是舊的路徑,需要修改成拷貝后的新的路徑才能正常訪問,

解決辦法
使用批處理命令,快速替換指定操作目錄env_nmf/bin下的所有檔案中的舊路徑為新路徑
需要注意的是:原始字串是路徑,路徑中出現/會與命令中的/重復,需要用**右斜杠“\”**進行轉義
這里一定要寫對!這里一定要寫對!這里一定要寫對!
// linux中的sed命令可以實作對指定路徑env_nmf/bin下的所有檔案進行字串替換
// 語法:
sed -i "s/原始字串/新的字串/g" `grep 原始字串 -rl 指定操作目錄`
// 本例中的命令
sed -i "s/home\/amily\/workspace/data3\/amily\/sourcecode/g" `grep home\/lpz\/workspace -rl env_nmf/bin`
上述命令運行完成后再使用source來激活環境,即可正常使用環境的python和pip~
測驗是否正常使用的簡單辦法就是輸出python和pip版本,如果這兩個都不能正常,后面要跑程式很難跑成功,
python -V
pip -V
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/378657.html
標籤:其他
上一篇:Python實作拼接串列中的元素
