python冷凍及虛擬環境

來源:互聯網
上載者:User

python freeze

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

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

pip freeze > requirements.txtpip 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

運行:

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

env 代表該虛擬環境的目錄叫env

運行後的目錄結構為:

|—myPythonProject         |———codePackage         |———env             |——bin             |——lib             |——include

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

source env/bin/activate

啟用後環境提示符變為:

(env) ➜ knife git:(master) ✗

表示此時該環境已經是這個項目所需的虛擬python3環境了,此時pip install 所有的package都會被安裝在env/lib/python3.5/site-packages目錄下了,不會受到其他python項目安裝的package包影響。

如果使用pyCharm等IDE,需要在項目建立時指定項目對應的project interpreter,如:

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.