windows環境下搭建python虛擬環境及離線移植


以python3.6為例

①安裝virtualenv:

#pip安裝之后在D:\Python36\Scripts目錄下可以看到多了一個virtualenv.exe可執行文件
pip install virtualenv

②創建一個虛擬環境:

# venvname為虛擬環境名,會在當前目錄下創建一個虛擬環境
virtualenv [venvname]

 

ps:當系統存在多個python版本時,直接執行這個命令會使用系統默認的python版本創建虛擬環境(windows下系統環境變量path中最靠前的python為默認版本),要指定python版本有以下2種方法:

1.virtualenv -p指定python解釋器

#windows下路徑為python解釋器的完整路徑,mac下路徑為python安裝目錄路徑(執行virtuaenv命令即可查看各命令選項),如下為windows示例
virtualenv -p D:\Python36\python.exe test1

 

 

2.將D:\Python27\Scripts\目錄下的virtualenv.exe更改名稱,比如加上版本號區分:virtualenv2.exe

 

③啟動&退出虛擬環境:

# 啟動虛擬環境時需要先切換到虛擬環境的Scripts目錄下再執行如下命令。
activate
#退出虛擬環境
deactivate

 

 ps:mac下這個命令為source venv/bin/activate

以上虛擬環境的安裝和創建就ok了,每次激活后就可以正常使用,接下來是虛擬環境在無網環境下的移植(切記,A和B 2個服務器上的python版本一定要一致!!!不僅是版本號,還有64bit或者32bit這些

A----->B(將A機器上的虛擬環境在無網情況下移植到B)

A機器上已有虛擬環境:

 ①   生成安裝包列表文件:

ps:這個命令在非虛擬環境也可以使用,可以生成pip list獲取的所有(除去python自帶的)包列表

# 安裝包列表保存到文件packages.txt中,文件名是自己定義,如果文件已經存在會被覆蓋更新,不存在會自動創建
#需要在虛擬環境目錄下執行這個命令(無需activate激活),否則生成的文件內容是系統python版本使用的安裝包列表
pip freeze >packages.txt 

 ②   將包列表文件中的所有包下載到文件夾下:

#savetest\whls為保存安裝包的路徑,不存在會被創建,packages.txt為前一步生成的包列表文件
pip download -d  [savetest\whls]  -r [packages.txt]

 

 

B機器上有沒有虛擬環境都可以

無虛擬環境直接在python環境下做以下操作

有虛擬環境則在虛擬環境下做以下操作,

③   將①和②中生成的包列表文件和安裝包文件夾復制到B機器上

④   依據包列表文件以及安裝包文件夾來安裝包:

#savetest\whls為安裝包文件夾路徑,packages.txt為包文件列表(注意相對路徑和絕對路徑的選擇)
pip install --no-index --find-links=[savetest\whls] -r [packages.txt]

 

ps:如果是在有網絡的情況下要移植環境,pip install -r [packages.txt]  即可

 

常見問題:

1.一段時間不使用虛擬環境,在使用時報錯了,解決如下

2.今天遷移到無法訪問外網的環境折騰了一天,各種報錯,下載pip和setuptools的wheel失敗什么的,就算忽略這2個的安裝,在讀文件安裝包的時候也會報錯說找不到該包,最后發現是本地的python是32bit的,新環境裝的是64bit的!!!!!具體問題如下:

①如果是遷移到虛擬環境出現了以下問題

解決方案:

如果需要pip和setuptools這些工具,可以在虛擬環境下手工安裝

②提示文檔中的包,在包文件夾下找不到,但是檢查是有的。后來發現是因為本地是python3.6.5-32bit,但是要遷移的目標服務器是python3.6.5-64bit,,后來重裝了python就好了 

 

 

https://www.cnblogs.com/yy-cola/p/9764822.html 

 

 

linux下也相似,參考:

https://www.cnblogs.com/wt11/p/6216508.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM