banner
朝闻道

朝闻道

做个知行合一的人
email

Python中的「虛擬環境」,一個概念的缺失帶來的影響

統一的標準很重要(測試 xlog 上的連結引用格式)

2024-04-10,下午 14:00~16:05,倒腾了 2 個小時,終於能夠成功運行 PyHanLP 了!下面記錄一下學到的知識👇

為了完成畢業設計中的一個環節 —— 從文本中提取非結構化的信息 —— 我需要能夠理解語義的工具,所以今天我為我的 Python 安裝了 PyHanLP 。

下面分享一下我遇到的問題。有空了就介紹一下什麼是 HanLP,沒空就算了。

這篇文章,我將用我的實際經驗向你證明,一個概念的缺失,有可能會讓你的工作變得更複雜!如果我能夠重視這個概念,並且理解它的影響,我想我會選擇學習 Conde 這個專業的工具(用來專門負責 Python 的虛擬環境),再去下載 HanLP 這個第三方庫。

HanLP 傻瓜安裝注意事項#

我使用了官網的 傻瓜安裝包,誰知道這個傻瓜安裝包真把我當傻瓜,它連安裝目錄都不讓我選,就直接一鍵幫我安裝了 JAVA 環境、HanLP、以及一個新 Python 3.8!

並且這些東西都被安裝在了 C 盤!

我原本的 Python 3.12 無法調用 PyHanLP ,這個 PyHanLP 只能由傻瓜安裝的 Python 3.8 才能調用。

為了解決這個問題,我試圖將原本的項目虛擬環境中的 Python 3.12 換成 Python 3.8,但是換過之後原本寫好的代碼不管用了 —— 原因是 Python 3.8 中並沒有安裝這些庫。

我這才明白,虛擬環境中的 Python 版本也是指定的,就算我在虛擬環境中把解釋器改成 Python 3.8,它也無法使用原本 Python 3.12 安裝在虛擬環境中的 pip 庫,因為這些庫只認 Python 3.12!所以我必須新建一個虛擬環境。

然後我新建了一個虛擬環境,調用 Python 3.8 ,並將之前的代碼都複製過來,然後重新下載這些代碼中需要的第三方庫,然而問題再次出現在我面前。

我試著運行 PyHanLP ,發現終端無法找到這個庫。我又明白了,原來 PyHanLP 是全局環境的庫,虛擬環境中無法調用全局環境中的庫。

可問題是,就是因為在虛擬環境的終端中使用 pip install pyhanlp 根本就無法下載它,所以我才會選擇傻瓜安裝包來安裝 PyHanLP。也就是說,我無法在虛擬環境中使用 PyHanLP 了。我只能使用 C 盤的 Python 3.8,然後將庫都裝在 C 盤!

要解決這個問題,我不得不放棄使用虛擬環境,而直接使用全局環境。我需要將 Python 3.8 添加到電腦的環境變量中,並且 Python3.8 的優先級必須比 Python3.12 的高。只有這樣,在終端中使用的 pip install 命令才針對 Python3.8。

如果是虛擬環境那麼我安裝的所有庫,都會安裝在我的代碼所在的文件夾 —— 我當然不會放在 C 盤。

正是這一個個攔路虎,讓我終於明白了虛擬環境的真正含義 —— 擁有自己的 pip 庫,獨立於其他任何的 Python 解釋器的工作環境!

我的 C 盤將被下載更多的庫,本就內存不多。這一切都是因為我沒有辦法在虛擬環境中安裝 PyHanLP!也都因為我之前不理解「虛擬環境」。

雖然我也是新手,但至少從今天的經驗中,我也許能夠給出一些建議。

如果你是 Python 新手:如果你將要下載許多 Python 第三方庫,也準備經常使用 Python 幫助你完成工作,並且你不想讓你的 C 盤背負太多(想把東西存在其他盤),那你就去老老實實下載一個 Conde 吧,(Conde 是一個專門管理 Python 庫、創建虛擬環境的工作平台)。

如果你也想使用 HanLP 這個庫,官方也提供的 conda 下載方案,兩行代碼就能搞定安裝(並不比傻瓜安裝包複雜)。而且我猜測,如果在 conda 中配置好了安裝路徑,那麼它幫你安裝的 PyHanLP 都不會傻乎乎地安裝在 C 盤!

什麼是虛擬環境#

簡而言之,虛擬環境就是,選擇使用一個版本的 Python 、有自己獨立的 pip 庫。

  1. 虛擬環境就相當於你又安裝了一個新 Python ,不過畢竟不是真的安裝了一個新 Python ,創建虛擬環境不會使用很大內存。
  2. 如果你的項目已激活虛擬環境,那麼你只能使用該環境中安裝過的 Python 庫,就算你原來那個 Python 裡有很多庫,虛擬環境中的 Python 也無法調用它們。
  3. 虛擬環境是用來:將一個項目所需的庫和其他項目所需的庫區分開,對每個項目文件而言節省空間。

如何在 VSCode 中創建虛擬環境#

在 VSCode 中為項目創建專屬的 Python 虛擬環境:

  1. 打開 VSCode,打開文件夾
  2. 點擊 VSCode 右下角的,Python 編輯器,在彈出的選項中選擇,「創建虛擬環境」,點擊創建一個虛擬環境,然後你打算使用的 Python 版本
  3. 新建終端,在終端中輸入 .\venv\Scripts\activate 激活虛擬環境,其實就是讓終端進入這個目錄。值得注意的是,下次再使用 VSCode 打開這個文件夾就不需要再激活虛擬環境了,軟體會自動進入。

這件事的結局#

我並不打算下載 Conde 以重新安裝 HanLP ,但我也不打算一直使用這個傻瓜安裝包為我在 C 盤配置的一切。

我沒有更多時間去學 Conde 的使用,不僅僅因為它是英文界面,還因為半天的時間對我而言也非常稀缺。我還有很多事情要忙。

等我考上研究生後,再來好好操作這個好工具吧!現在我只好妥協,在 C 盤完成我的畢業設計。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。