close

python程式目前可採用的副檔名有.py、.pyc、.pyo、.pyw、.pyd等等,

其中pyc和pyd為二進制文件,

且pyd格式是D語言(C/C++綜合進化版本)生成的二進制文件,

pdy是python的動態模組,

實質上也是DLL文件,

而pyc及pyo這兩種格式是可以被反編譯,

最後的pyw單純只用來隱藏命令行的介面而已,

 

pdy參考資訊: 點擊我

 

這邊之所採用pyd的主要目的是為了保護程式碼,

避免受到他人盜取採用,

下方將介紹如何將.py生成pdy文件,

這邊採用的python版本為3.6.1

 

1. 安裝Cython

輸入指令: pip install cython

 

2. 準備.py檔案

假設有一個test.py檔要轉成pyd文件,

其內容如下:

def hello():

    print("hello python world!")

 

3. 新建setup.py檔

接著另建一份setup.py文件,

寫法如下:

from distutils.core import setup

from Cython.Build import cythonize

 

setup(

name = 'Hello world',

ext_modules = cythonize("test.py"),

)

 

假設有一個main資料夾裡面含有許多.py檔,

透過下方的方式可一次同時轉多個檔案,

寫法如下:

from distutils.core import setup

from Cython.Build import cythonize

 

setup(

name = 'Hello world',

ext_modules = cythonize(module_list="main/*.py", exclude='main/__ini__.py'),

)

 

4. 生成pdy文件

開啟cmd指定到該目錄,

輸入指令: python setup.py build_ext --inplace

將會生成如下幾個檔案,

可只保留.pyd文件檔即可,

 

5. 可直接透過import方式來使用.pdy文件

將上述的文件test.cp36-win_amd64.pyd先縮短名稱為test.pyd,

無論是否要縮短名稱都不影響結果,

寫法如下:

import test

test.hello()

輸出的結果為hello python world!

 

arrow
arrow

    楓綺 發表在 痞客邦 留言(0) 人氣()