python冷凍及虛擬環境

高洛峰
發布: 2016-11-21 14:16:02
原創
1764 人瀏覽過

python freeze

python應用在開發中會使用各種各樣的包,通常我們會用venv來對各應用項目依賴的python解釋器版本及其包進行隔離。

應用中import的各種包如何「固定」住呢? pip提供方法freeze,將依賴的套件名稱及版本匯出到txt檔案中,日後其他人引入專案時,可以透過pip提供的方法直接匯入,簡單來說:

pip freeze > requirements.txt

pip install -r  requirements.txt
登入後複製

跟java的maven倉庫導入差不多, 更輕量環保。

virtual env

java應用程式的使用中,我們都會指定專案的jdk路徑。大多數情況,一般可能每個開發機器上都會有1-3個版本的JDK, 如 jdk6, jdk7, jdk8,通常這樣就夠了。 然後會在系統PATH變數中指定一下JAVA_HOME路徑。

java應用的外部第三方包的依賴由maven設定,並在build時帶入應用的目錄作為依賴。

python的控制方式略有不同,由於python本身自帶了pip這個套件管理工具。而且由於python是動態化的腳本語言,可能會有好幾組不同的腳本分佈在不同的目錄組織,由於開發週期的原因,各個目錄的腳本依賴的python解釋器,包可能會不同,一個在python2跑的好好的腳本用python3的解釋器通常都會出錯。

我們需要一種把各組腳本運行環境隔離的方式,就是用virtual env解決。

具體方式就是在python專案的根目錄中:

|—myPythonProject
      |———codePackage
登入後複製

具體方式就是在python專案的根目錄中:

|—myPythonProject
         |———codePackage
         |———env
             |——bin
             |——lib
             |——include
登入後複製

運作:

virtualenv -p python3 env-p 代表創建一個python3的虛擬環境

env 運行後稱為該虛擬環境的目錄代表該虛擬環境的目錄?目錄結構為:

rrreee

然後我們需要啟動這個虛擬環境:

source env/bin/activate

啟動後環境提示符號變成:

(env) ➜ knife git:(master) ✗時該環境已經是這個專案所需的虛擬python3環境了,此時pip install 所有的package都會被安裝在env/lib/python3.5/site-packages目錄下了,不會受到其他python專案安裝的package包影響。

如果使用pyCharm等IDE,需要在專案建立時指定專案對應的project interpreter,如下圖:

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!