[Python] 在 Mac 上搭配 Virtualenvwrapper 與 PyPy,加速程式執行

[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

(本頁面已被瀏覽過 44 次)

發表迴響

你的電子郵件位址並不會被公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料