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,如: