記錄一下自己使用Cython的過程和經驗.
環境:
- 系統:Windows10/Ubuntu
- python環境:Anaconda
- 編輯器:VSCode
安裝Cython
首先介紹Windows系統下的安裝.
Cython通過編譯python文件來實現加速,因此需要安裝編譯器,我使用的是MingW.
安裝MingW后,安裝相關庫:
conda install libpython m2w64-toolchain -c msys2
Windows下還需進行編譯器配置,進入python安裝目錄中的\Lib\distutils文件夾,新建distutils.cfg文件,並寫入:
[build] compiler=mingw32
最后安裝Cython:
conda install cython
至此已經安裝完成.
下面介紹Ubuntu系統下的安裝.
Linux系統下應該默認安裝了gcc編譯器,如果沒有,則請自行安裝.
直接安裝Cython即可:
conda install cython
下面來實驗一下Cython. 創建Hello.pyx
(注意后綴名為.pyx
),寫入:
print("Hello!")
之后我們需要編譯此文件,最常用的編譯方式為創建setup.py
,寫入:
from setuptools import setup
from Cython.Build import cythonize
setup(
ext_modules = cythonize("hello.pyx")
)
然后在終端中執行:
python .\setup.py build_ext --inplace
這里,Cython官方文檔給定的參數
--inplacefrom
無法被識別,不知道是什么原因.
執行后,你的目錄下應該多出來兩個個文件:hello.c
,hello.cp38-win_amd64.pyd
,以及一個文件夾:build
.(此處編譯是在Windows系統下進行,linux系統下編譯不會得到.pyd
文件,而是會得到.so
文件.)
之后執行:
import hello
可以看到輸出:
Hello!
作為和python庫的對比,此時我們更改hello.pyx
的內容為:
print("Hello!It's a test")
保存后,不重新編譯,輸出結果不變.