almost 5 years ago

今天在使用 pip bundle 的時候,發現 pip 1.5 將會廢除 pip bundle

###############################################

##                                           ##

##  Due to lack of interest and maintenance, ##

##  'pip bundle' and support for installing  ##

##  from *.pybundle files is now deprecated, ##

##  and will be removed in pip v1.5.         ##

##                                           ##

###############################################

查看了一些討論串,似乎一直有廢除的聲浪,但一直沒有真的執行。許多潛水很久的人會冒出來說自動化部屬時大量依賴 pip bundle,希望不要廢除。事實上,我們在部屬上也大多是使用 pip bundle 只是因為在打包上相當方便。

大家覺得要廢除的原因主要是覺得這個指令很多餘。因為這個功能基本上形同用 tar 製作一個包含 source code 的 archive。

wheel 是一個 python 的打包工具,我覺得他最大的特色就是打包出來的 package 是 pre-compiled。因此,拿到新的環境就不需要重新 build。也因此要小心不要把編好的 package 拿到不同的平台使用。

在 pip 1.4,wheel 被正式的納入指令中。

今天稍微試玩了一下,其實並不難。

安裝

首先,要確認你的 pip >= 1.4

pip install -U pip>=1.4

接著,安裝 wheel

pip install wheel

使用方式

  • 打包 (以 django 為例)

    pip wheel django
    

    這時一個新的資料夾 wheelhouse 會被建立。裡面就放著剛 build 好的 django binary。

  • 安裝

    pip install --use-wheel --no-index --find-links=wheelhouse/ django
    

    這時就算沒有連外網路一樣會把 django 裝好。

參考資料

  1. remove pip's bundle support?
  2. Replacing “pip bundle”
  3. Wheel
← Why supervisor? Django 上傳中文檔名 →
 
comments powered by Disqus