亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用虛擬環(huán)境實現Python版本和依賴庫的兼容

 更新時間:2022年12月05日 08:22:13   作者:englyf八戒  
這篇文章主要介紹了使用虛擬環(huán)境實現Python版本和依賴庫的兼容的相關資料,需要的朋友可以參考下

Python 開發(fā)環(huán)境非常靈活,得益于可以創(chuàng)建虛擬環(huán)境。

難道全局地安裝完 python 支持包然后直接 pip 再安裝一波依賴包就不可以開發(fā) python 程序了嗎?

明顯是可以的,而且可以運行的非常好。不過,如果你接手了別人的代碼工程,卻發(fā)現對方使用的 python 版本或者依賴庫都和你的環(huán)境不兼容時,怎么辦?打算卸掉自己原來的那一套環(huán)境再重來嗎?真麻煩!

其實,虛擬環(huán)境就能完美解決這個苦惱。

創(chuàng)建

創(chuàng)建虛擬環(huán)境時,使用對于 python2 和 python3 的配置細節(jié)不一樣,但是思路是一樣的。

python2 需要通過第三方包 virtualenv 來創(chuàng)建虛擬環(huán)境。

先通過 pip 模塊安裝第三方包

pip install virtualenv

然后在自己的工程目錄里啟動執(zhí)行指令

virtualenv venv

上面的指令會自動創(chuàng)建文件夾 venv,該文件夾內就存儲著虛擬環(huán)境的所有內容。

而python3 僅需要通過語言自帶的模塊 venv 來創(chuàng)建虛擬環(huán)境,python2 是沒有這個模塊的。

由于 python3 是目前 python 的主流版本,所以下面的介紹只適用于 python3,并且適用版本是 Python 3.8.10。

在自己的工程目錄里啟動執(zhí)行指令

// windows cmd

python -m venv venv

啟動

創(chuàng)建好虛擬環(huán)境后,開發(fā)和維護這個工程時,希望工程依賴的 python 版本和依賴包等能獨立被管理起來,并且不需和全局環(huán)境兼容,那么這個工程的 python 版本和所有的依賴包都需要只在這個虛擬的環(huán)境下安裝和儲存。

啟動開發(fā)調試或者安裝第三方依賴包之前,啟動環(huán)境僅需要執(zhí)行在創(chuàng)建環(huán)境時自動生成的腳本。

// windows cmd

.\venv\Scripts\activate.bat

// windows powershell

.\venv\Scripts\Activate.ps1

// linux bash

source .\venv\Scripts\activate

然后你會看到命令窗口的命令行前面多了個(venv),表示虛擬環(huán)境已啟動

(venv) D:\prj\venv>

而一旦你需要轉移工程時,你也就僅需要把存放虛擬環(huán)境的文件夾 venv 一起拷貝即可。

安裝依賴包

創(chuàng)建完虛擬環(huán)境后,來看看有哪些包已經被安裝了

(venv) D:\prj\venv>pip list
Package    Version
---------- -------
pip        21.1.1
setuptools 56.0.0
WARNING: You are using pip version 21.1.1; however, version 22.3.1 is available.
You should consider upgrading via the 'd:\prj\venv\venv\scripts\python.exe -m pip install --upgrade pip' command.

出警告了,說是建議升級當前的模塊 pip 版本。估計是當前的版本出了一些比較嚴重的bug,為了減少不必要的麻煩,升吧。

(venv) D:\prj\venv>python -m pip install --upgrade pip
Requirement already satisfied: pip in d:\prj\venv\venv\lib\site-packages (21.1.1)
Collecting pip
  Using cached pip-22.3.1-py3-none-any.whl (2.1 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 21.1.1
    Uninstalling pip-21.1.1:
      Successfully uninstalled pip-21.1.1
Successfully installed pip-22.3.1

假如因為工程實際需要開發(fā)GUI,那么可以引入第三方包 wxPython,使用前還是需要安裝的。

有時候吧,你會發(fā)現很不幸,安裝 wxPython 失敗了。因為第三方包的維護其實是各自獨立的,和 python 各個版本模塊有一定的兼容性問題。建議還是換一個 python 版本再試試,不過我這版本目前是沒問題的。

(venv) D:\prj\venv>pip install wxpython
Collecting wxpython
  Using cached wxPython-4.2.0-cp38-cp38-win_amd64.whl (18.0 MB)
Collecting six
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting numpy
  Using cached numpy-1.23.5-cp38-cp38-win_amd64.whl (14.7 MB)
Collecting pillow
  Using cached Pillow-9.3.0-cp38-cp38-win_amd64.whl (2.5 MB)
Installing collected packages: six, pillow, numpy, wxpython
Successfully installed numpy-1.23.5 pillow-9.3.0 six-1.16.0 wxpython-4.2.0

再看看當前的環(huán)境

(venv) D:\prj\venv>pip list
Package    Version
---------- -------
numpy      1.23.5
Pillow     9.3.0
pip        22.3.1
setuptools 56.0.0
six        1.16.0
wxPython   4.2.0

重復利用環(huán)境依賴配置信息

問題來了,上面的示例只是安裝了一個依賴包就有了這么長的配置,如果我安裝的依賴包非常多,多到自己都不記得了,然后萬一我把文件夾 venv 的內容全刪掉了,也就是說我需要重新配置環(huán)境,這時是不是得瘋掉?

不用擔心,有個很好的方法保存當前的環(huán)境依賴包信息到本地文件。

pip list > requirements.txt

上面的指令將當前的依賴包關系轉存到了文件 requirements.txt 中,至于為什么要用這個名字呢?這里其實沒有特殊要求,只是為了兼容某些開發(fā)平臺的習慣,比如著名的 Pycharm。

好了,配置保存到了本地,那么在依賴包缺失的環(huán)境中怎么重復利用這個配置信息呢?

pip install -r requirements.txt

這樣子就一鍵恢復了原來保存的安裝配置。在 Pycharm 平臺會自動識別工程根目錄下面的 requirements.txt 這個文件名的配置。

退出

有些情況下,需要臨時退出虛擬環(huán)境的配置,調用對應的腳本

// windows cmd

.\venv\Scripts\deactivate.bat

到此這篇關于使用虛擬環(huán)境實現Python版本和依賴庫的兼容的文章就介紹到這了,更多相關Python版本和依賴庫的兼容內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解python-圖像處理(映射變換)

    詳解python-圖像處理(映射變換)

    這篇文章主要介紹了python-圖像處理(映射變換),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • 快速入手Python字符編碼

    快速入手Python字符編碼

    本文不談復雜的理論,就經驗教大家字符處理八字真言:確定編碼,同類交互。教大家快速戰(zhàn)勝Python字符編碼。
    2016-08-08
  • Python生成隨機密碼

    Python生成隨機密碼

    這篇文章主要介紹了Python生成隨機密碼的代碼分享,由于是新手,僅僅是簡單的實現,未作任何其他處理,小伙伴們自己參考下吧。
    2015-03-03
  • Python+Selenium自動化環(huán)境搭建與操作基礎詳解

    Python+Selenium自動化環(huán)境搭建與操作基礎詳解

    Selenium是如今最常用的自動化測試工具之一,支持快速開發(fā)自動化測試框架,且支持在多種瀏覽器上執(zhí)行測試。本文將介紹關于Selenium?Python自動化腳本環(huán)境搭建的相關資料,需要的朋友可以參考下
    2022-03-03
  • Python文件基本操作open函數應用與示例詳解

    Python文件基本操作open函數應用與示例詳解

    這篇文章主要為大家介紹了Python文件基本操作open函數應用與示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Python移位密碼、仿射變換解密實例代碼

    Python移位密碼、仿射變換解密實例代碼

    凱撒密碼(Caesar 密碼)是最早的代換密碼,也是古典對稱密碼體制的典型代表,已經初步體現出近代密碼系統(tǒng)的雛形,這篇文章主要給大家介紹了關于Python移位密碼、仿射變換解密的相關資料,需要的朋友可以參考下
    2021-06-06
  • Python讀取含url圖片鏈接的txt文檔方法小結

    Python讀取含url圖片鏈接的txt文檔方法小結

    這篇文章主要為大家詳細介紹了三種Python讀取含url圖片鏈接的txt文檔方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-04-04
  • 如何處理Python3.4 使用pymssql 亂碼問題

    如何處理Python3.4 使用pymssql 亂碼問題

    這篇文章主要介紹了如何處理Python3.4 使用pymssql 亂碼問題的相關資料,涉及到python pymssql相關知識,對此感興趣的朋友一起學習吧
    2016-01-01
  • python引入其他文件夾下的py文件具體方法

    python引入其他文件夾下的py文件具體方法

    在本篇文章里小編給大家整理的是一篇關于python引入其他文件夾下的py文件具體方法,有興趣朋友們可以跟著學習參考下。
    2021-05-05
  • 關于pandas.date_range()的用法及說明

    關于pandas.date_range()的用法及說明

    這篇文章主要介紹了關于pandas.date_range()的用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評論