[Python] 在 Mac 上搭配 Virtualenvwrapper 與 PyPy,加速程式執行
最近在實作 Machine Learning 中的蒙地卡羅 (Monte-Carlo) 算法,
發現 Python 程式在固定時間內,模擬的次數不夠多,
導致 Monte-Carlo 的預測結果並不理想…
研究了幾個加速的方法,
發現一個方法是利用 PyPy 這個直譯器來執行 Python 程式~
在 Mac 上搭配 Homebrew 與 virtualenvwrapper 的話,
安裝與使用 PyPy 還算蠻簡單的,
來記錄一下步驟吧~
1. 安裝 PyPy
用 Homebrew 直接安裝 pypy 套件:
brew install pypy
2. 建立 Virtualenvwrapper 環境
平常是用 mkvirtualenv <name> 來建立一個新的 python 虛擬環境,
現在我們要加上 -p <pypy 路徑>,來指定要使用的 python 直譯器,例如:
mkvirtualenv -p /usr/local/bin/pypy sklearn_pypy
3. 使用 pip 安裝需要的套件
因為我們已經在虛擬環境中,指定了 pypy 為主要的 python 直譯器,
因此執行 python 預設就是用 pypy 在執行:
(sklearn_pypy) testuser@localhost ~ $ python --version Python 2.7.13 (ab0b9caf307db6592905a80b8faffd69b39005b8, Jun 24 2018, 08:19:27) [PyPy 6.0.0 with GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)]
這時用 pip 安裝必要的套件,也會套用在 pypy 上面,
像是我安裝了 Machine Learning 相關的套件如 numpy, sklearn 等等:
pip install --upgrade pip pip install numpy pip install sklearn
4. 使用 PyPy 來執行 python 程式
直接執行 python <python 檔案>,就會用 PyPy 來執行了。
實測我自己寫的 Monte-Carlo 程式,模擬的次數大約可以增加快一倍,
算是還不錯囉~^^
參考資料:Using Python PyPy in a virtual environment
(本頁面已被瀏覽過 270 次)