基於Pycharm建立的虛擬環境移植問題
基於Pycharm建立的虛擬環境移植問題
問題的引出
在昨天夜裡,我突發奇想要不要把我建立的虛擬環境git上去,這樣以後要是出了什麼事,也不必一個一個包的再去安裝,所以我就將整個PYTHON_ENV
資料夾拷貝到了我的GIT
資料夾下。拷貝完成之後,來隨便寫一個Hello World!
來驗證一下,拷貝過來的虛擬環境它還可以用嗎?
於是便開始了一系列的工作:
- 新增虛擬環境:
-
驗證是否可用:
哎,我們發現複製過來的環境居然可以使用哎!這難道不是一件很開興的事嗎?
-
問題出現:
後來在在使用
Terminal
的時候發現,在這裡面使用我們的pip
命令之後,它居然是全域性的命令,這就很不友好,要記得在沒有拷貝之前,使用這些命令的作用範圍都是虛擬環境
問題的發現
檢視虛擬環境資料夾
出現問題之後,就逐漸開始懷疑虛擬環境所在的檔案夾了,是不是裡面有著相關的配置檔案呢?
我們來看看其中的檔案構造:
其中include
資料夾是一個空資料夾,而pyvenv.cfg
的內容呢,是我們基於什麼環境所建立的虛擬環境。
home = D:\Install\Python\Python372
include-system-site-packages = false
version = 3.7.2
那麼,此時問題肯定就在剩餘的資料夾中了,而開啟lib
資料夾發現這裡面都是一些我們所安裝的包的一些相關檔案。此時問題便逐漸的歸到了Scripts
那麼此時,問題便可歸於前四個檔案了,active
,active.bat
,Active.ps1
,deactive.bat
.
建立一個新的虛擬環境與之比對
由於我們可能已經找到了引起這個問題出現的關鍵性檔案,所以我們便可以在隨便再建立一個檔案與它進行比對:
-
active
檔案:在這個檔案中我們發現了一共有兩處不同:
那麼,很容易看出第一處不同是路徑,它還是我拷貝之前的路徑,第二處不同顯然是虛擬環境的名稱,現在我們將它改正過來。
-
activate.bat
檔案:這和上面的問題都一樣。
-
Activate.ps1
檔案:同樣是路徑的問題。
-
deactive.bat
沒有差別。
解決方法
-
找到你所建立的虛擬環境資料夾。
-
開啟
Scripts
資料夾。 -
找到
active
檔案,找到第40行,將VIRTUAL_ENV=" "
雙引號裡改為你拷貝後的路徑。 -
找到
active.bat
檔案,找到第11行,將set "VIRTUAL_ENV=
改為你拷貝後的路徑。 -
找到
Active.ps1
檔案,找到第30行,將$env:VIRTUAL_ENV=" "
雙引號裡改為你拷貝後的路徑。 -
在這裡有兩種方法:
-
如果你的
pip
版本不是最新的,你可以採用如下方式:在全域性環境下啟用我們的虛擬環境
運用
python -m pip install --upgrade pip
命令# 示例 # 開啟命令列輸入如下程式碼 D:\Data\GIT\python_Practice\PYTHON_ENV\DIGIFAX_ENV\Scripts\activate.bat # 這裡的路徑是你虛擬環境下的路徑 python -m pip install --upgrade pip
-
進入虛擬環境下,刪除
Scripts
資料夾下的接著刪除
Lib\site-packages
下!然後進入
Pycharm
的環境配置介面,會看見有黃色高亮的這一行,點選Insatll packaging tools
便可。然後靜待片刻,就會發現和以前一樣可以使用了,如若不行再來一次!
當然了,你要是覺得此種方法有點麻煩,你可以在
pycharm
中指定一箇舊版本的pip
進行安裝,再將其更新,採用第一種方法。 -