windows上使用pyvenv進行項目隔離

最近在進行個人博客遷移,因為阿里云服務和域名服務都到期了,得知騰訊云對于學生更優(yōu)惠后,我選擇了把博客遷移到騰訊云上,騰訊云的學生認證入口:學生認證。目前每天只有200個名額,需要的童鞋手要快。由于博客遷移一次,就要安裝一次相應的庫,有的時候并不知道自己項目中裝了些啥三方庫,所以只有邊試錯邊部署,很費精力,所以便萌生了使用pyvenv構建虛擬目錄進行部署項目。

查閱了網(wǎng)上的一些資料發(fā)現(xiàn),很多都是基于linux平臺的,基于windows平臺的特別少。所以我打算把過程記錄下來。方便自己,也方便他人。

python3.4開始,就已經(jīng)自帶了pyvenv,我使用的是python3.5。如果版本低于3.4,可以使用pip安裝virtualenv這個庫,它們用法基本一致。

先切換到你需要放置項目的目錄,然后在命令行中使用pyvenv新建虛擬環(huán)境:

python -m venv test

這個命令執(zhí)行完成之后,當前目錄會新建一個名為test的目錄,里面就是虛擬環(huán)境。

激活虛擬環(huán)境,需要先切換到 test/Scripts/目錄下,執(zhí)行activate.bat這個批處理,這個就和linux有所區(qū)別:

cd test/Scripts

activate

激活虛擬環(huán)境后的命令行,最前面會出現(xiàn)項目名稱, 比如下面:

(test) C:\Users\Administrator\test\Scripts>

虛擬環(huán)境中的python并沒有安裝擴展庫(pip除外),我們通過pip在虛擬環(huán)境中安裝的任何擴展庫都只對當前虛擬環(huán)境(test)有效,對真實的環(huán)境和別的虛擬環(huán)境都沒有效。比如我們繼續(xù)執(zhí)行以下命令安裝requests庫:

pip install requests

然后導入它:

import requests

這個是可以運行的。如果我們的真實環(huán)境沒裝requests的話,我們使用這條命令就會報錯。換句話說,就是虛擬環(huán)境和真實環(huán)境、還有別的虛擬環(huán)境都各不影響。

激活虛擬環(huán)境后可以安裝各種庫,執(zhí)行各種操作了,怎么退出虛擬環(huán)境呢?

deactivate

這個命令不必切換到 test/Scripts, 哪里都可以執(zhí)行。

這里說完了虛擬環(huán)境的激活和退出,下面說說從A環(huán)境遷移到B虛擬環(huán)境怎么重建依賴的問題,這也是我自己運用虛擬環(huán)境的一個很重要的原因。

先在A環(huán)境中把所有依賴都保存到re.txt中,使用pip freeze:

pip freeze > re.txt

這時會在當前目錄生成re.txt,通過記事本可以直接打開:

notepad re.txt

可以看到類似內容:
<pre>
Flask==0.11.1
Flask-Login==0.3.2
Flask-SQLAlchemy==2.1
</pre>

我們可以修改該文件來改變我們虛擬環(huán)境的相關依賴,比如我們不需要Flask,直接刪除Flask==0.11.1即可。

這個文件怎么用呢,我們先激活B虛擬環(huán)境,然后可以一條命令安裝所有依賴:

pip install -r re.txt

到此,B虛擬環(huán)境和A環(huán)境的依賴就一樣了。還有一點我需要說明,有的擴展庫通過pip install的方式安裝可能會出現(xiàn)問題(比如 lxml),那么通過上面那條命令安裝也會失敗,這種擴展庫我們只有去這里下載編譯好的.whl文件進行單獨安裝。先在虛擬環(huán)境中安裝wheel(pip install wheel),然后就可以直接用pip命令安裝.whl文件了。

關于python在win平臺上的虛擬環(huán)境的知識大概就如此了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容