「python wheel是什麼」的推薦目錄:
python wheel是什麼 在 大象中醫 Youtube 的精選貼文
python wheel是什麼 在 大象中醫 Youtube 的最佳解答
python wheel是什麼 在 Python 包管理工具setuptools, easy_install 和pip 的推薦與評價
setuptools 是一款便于开发者构建和分发Python 包的工具,它基于Python 工具 distutils 进行的增强开发。 基本使用. 运用 setuptools 进行安装的典型脚本 ... ... <看更多>
python wheel是什麼 在 李坤霖 的推薦與評價
which pip 檢查看看你到套件執行路徑有沒有問題,是不是不小心執行到全域的. ... Command "/volume1/python/myenv/python3/bin/python3.5 -m pip install ... ... <看更多>
python wheel是什麼 在 [心得] 加快pip 安裝重覆套件wheel/cache - 看板Python - 批踢踢 ... 的推薦與評價
很多人都會用虛擬環境(virtualenv 或內建的 venv)
來管理不同的專案中套件相依,但有些套件其實經常被使用的,
例如科學計算幾乎都要 numpy。它帶有 fortran、C 代碼,
還連結很多外部函數庫 MKL、LAPACK、ALTAS、BLAS、ARPACK,
有時裝好了也不確定是不是有正確連結到,十分費神。
或者像 ipython[all] 這樣的套件,裝起來可能也需要幾分鐘的時間。
底下算是幾個加速的方式:pip cache 以及 wheel 分享給大家。
TL;DR
設定環境變數
export PIP_USE_WHEEL=true
export PIP_WHEEL_DIR="$HOME/.pip/wheel"
export PIP_DOWNLOAD_CACHE="$HOME/.pip/cache"
export PIP_FIND_LINKS="file://$PIP_WHEEL_DIR"
用 pip wheel <pkg_name> 做自己的 wheel
裝套件就會先看 wheel_dir 有沒有做好的 .whl
再看 cache 有沒有曾經下載過
達到加速安裝(但還是需要網路連線)
Cache
-----
設定 export PIP_DOWNLOAD_CACHE="$HOME/.pip/cache"
把 PyPI 上找到的套件,下載在 cache 資料夾裡。
有新版本也會自動下載新的存著。
如果套件 release 就是用 wheel 格式的話也會存在 cache。
要注意 cache 檔名包含網址,有做 PyPI mirror 的話會存成不同檔案
Wheel
-----
算是目前推廣中的格式,不少套件都有採用了。
它是 binary release,所以少了安裝的過程會快很多,
針對 Python 版本、OSX/Win/Linux 32/64 製作專門的 .whl
Linux wheel 因目前規格不處理 distro 而很少能直接下載用,
像 CentOS/Debian 外部函式庫的位置都不一樣,因此
並不會在公開像 PyPI 上找到。
新版 pip 都會預設優先使用 wheel,沒有的話可以加上
export PIP_USE_WHEEL=true
細節請參考 TP 大大的投影片:
- We Buy Cheese in a Cheese Shop
https://speakerdeck.com/uranusjr/we-buy-cheese-in-a-cheese-shop
自己的 wheel 自己做!
"""""""""""""""""""""
如果今天開發環境是相似的(同台電腦、同樣設定的 VM)
就算套件沒有給 wheel 照樣可以自己做
設定下兩行之後可以少打很多參數,
export PIP_WHEEL_DIR="$HOME/.pip/wheel"
export PIP_FIND_LINKS="file://$PIP_WHEEL_DIR"
PIP_WHEEL_DIR 給定做好的 wheel 要存哪
PIP_FIND_LINKS 則是 pip install 會來這目錄看有無現成的
首先要裝 wheel 這個套件
pip install wheel
接著安裝好自己想要包 wheel 的套件,以 <pkg_name> 為例,
安裝好 <pkg_name> 之後
pip wheel <pkg_name>
就會做出 <pkg_name>-<ver>-xxx.whl 在 wheel_dir 中。
製作過程會把 source 下載下來,但這不是重新編譯的意思。
製作完成之後,未來便可選擇用這個 .whl 安裝 <pkg_name>
pip install <pkg_name>-<ver>-xxx.whl
在官網說明中,會看到這行
pip install --no-index --find-links=/local/wheels xxx.whl
--no-index 表示不給它看 PyPI 有沒有新版,並強迫在 find_links 的目錄裡找
有設在環境變數中的話就不用多下 --find-links 了
沒有 --no-index 時,檢查 PyPI 有新版的話就會忽略本地舊版的 .whl 及 cache
結論
----
設定好之後,你可以建立一個 wheel_list.txt 然後
cat wheel_list.txt | xargs pip wheel
把常用的 wheel 都建好自用、送 VM 兩相宜。
看到 pip install ipython[all]
一行裝一個套件,20 秒內裝好 12 個套件的感覺真好。
參考
----
- pip 官網: https://pip.pypa.io/
- wheel 官網: https://wheel.readthedocs.org/
如果有寫錯什麼再麻煩多多指教(鞠躬)
說好的 Windows 呢?
===================
上述的所有功能在 Windows 上都能正常運作。
設定檔請寫在 %HOME%\pip\pip.ini 中
[global]
find-links = C:\pip\wheels
download_cache = C:\pip\cache
[wheel]
wheel-dir = C:\pip\wheels
請確定這些路徑存在且有權限。
在 Windows 上設定 Python
------------------------
(是不是要另外發一篇?)
如果用 Python 3.4 的話,使用官方的安裝程式,
裝完就有 setuptools 以及 pip 了。
虛擬環境用內建的就可以了
PS > py.exe -3.4 -m venv VENV_NAME
PS > .\VENV_NAME\Scripts\Activate.ps1
(VENV_NAME) PS >
還是彩色的喔 :)
Powershell PS1 權限
"""""""""""""""""""
如果 Activate.ps1 噴 error 的話,用管理員權限執行
PS > Set-ExecutionPolicy Unrestricted
# 按 Y
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.185.29.212
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1406294621.A.42B.html
... <看更多>