---
# System prepended metadata

title: '**python script encryp**'

---

# **python script encryp**

* window:
1. 確認python版本對應Microsoft Visual C++版本：[WindowsCompilers](https://wiki.python.org/moin/WindowsCompilers)，安裝。
2. 安裝Cython
```
pip install cython
```
3. 準備一份待加密py script，暫命名為 run.py
```
def run():
    print("Hello word!)
```
4. 建立setup.py加密script，內容:
```
from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules=cythonize(["run.py"]))
```
5. cmd至該文件目錄下，輸入指令
```
python setup.py build_ext --inplace
```
6. 執行後目錄文件下會生成
> run.c、run.cp**-win_amd64.pyd、build(資料夾)
其中pyd為加密後文件，其餘資料可刪除，pyd文件可重新命名為:run.pyd
7. cmd測試(要確認是否成功請刪除"未加密.py")前先建立一份py script
```
import run
run.run()
```
* linux
1. 先安裝基本仰賴套件
```
$ sudo apt install python3-dev gcc 
$ pip3 install cython
```
2. 同window步驟3~7執行測試，只是*.pyd會變成*.so

* 意外裝況
1. error:Unable to find vcvarsall.bat
> 當前python版本與Microsoft Visual C++版本不一致，請參閱window步驟1，參閱連結：[Link](https://www.freesion.com/article/7760468240/)