python的編譯
pyc是一種二進位制檔案,是由py檔案經過編譯後,生成的檔案,是一種byte code,py檔案變成pyc檔案後,載入的速度有所提高,而且pyc是一種跨平臺的位元組碼,是由python的虛擬機器來執行的,這個是類似於JAVA或者.NET的虛擬機器的概念。pyc的內容,是跟python的版本相關的,不同版本編譯後的pyc檔案是不同的,2.5編譯的pyc檔案,2.4版本的python是無法執行的。
1.編譯單個py檔案
(1)
直接在命令列下執行 python -m py_compile file.py
(2)
root@ubuntu:/var/# python
>>> import py_compile
>>> py_compile.compile(r'/home/test/test.py')
>>> py_compile.compile('webmail_sina.py')
2.批量生成pyc檔案
root@ubuntu:/var/# python
>>> import compileall
>>> compileall.compile_dir(r'/home/codemo/Desktop/python')
為什麼需要pyc檔案
這個需求太明顯了,因為py檔案是可以直接看到原始碼的,如果你是開發商業軟體的話,不可能把原始碼也洩漏出去吧?所以就需要編譯為pyc後,再發布出去。當然,pyc檔案也是可以反編譯的,不同版本編譯後的pyc檔案是不同的,根據python原始碼中提供的opcode,可以根據pyc檔案反編譯出 py檔案原始碼,網上可以找到一個反編譯python2.3版本的pyc檔案的工具,不過該工具從python2.4開始就要收費了,如果需要反編譯出新版本的pyc檔案的話,就需要自己動手了(俺暫時還沒這能力^--^),不過你可以自己修改python的原始碼中的opcode檔案,重新編譯 python,從而防止不法分子的破解。
相關文章
- python如何編譯Python編譯
- python 編譯失敗Python編譯
- Python 編譯成 exePython編譯
- python編譯備忘Python編譯
- Python是如何編譯執行的Python編譯
- python如何編譯成exePython編譯
- python開發編譯器Python編譯
- Python Extension 編譯問題Python編譯
- [Python]批量編譯pyc檔案Python編譯
- NEO Python編譯器介紹Python編譯
- 重新編譯python(親證有效)編譯Python
- 編譯器的編譯基本過程編譯
- 編譯python(cpython)的原始碼及其用途編譯Python原始碼
- python反編譯之位元組碼Python編譯
- 【譯】使用 Python 編寫虛擬機器直譯器Python虛擬機
- Python將py檔案編譯為exe的方法Python編譯
- 編譯器的自展和自舉、交叉編譯編譯
- cmake編譯指定自己編譯的庫路徑編譯
- SCSS 的編譯CSS編譯
- Java編譯與反編譯Java編譯
- CentOS 全新編譯安裝 Python3.8CentOS編譯Python
- Python下編譯py成pyc和pyoPython編譯
- Python 編譯:code物件 與 pyc檔案Python編譯物件
- Mac平臺反編譯Unity編譯的安卓apkMac編譯Unity安卓APK
- OCI程式的編譯編譯
- Java程式碼的編譯與反編譯那些事兒Java編譯
- 都有Python了,還要什麼編譯器!Python編譯
- CentOS下編譯安裝Python3教程CentOS編譯Python
- centos7編譯安裝python3CentOS編譯Python
- Cython加密python程式碼防止反編譯加密Python編譯
- CentOS 7下編譯安裝Python3CentOS編譯Python
- 在Windows下編譯Caffe與其Python介面Windows編譯Python
- Python語言常用的編譯器有哪些?工具推薦!Python編譯
- Python PyInstaller 安裝方法 及簡單的編譯exePython編譯
- hadoop編譯—+2.x編譯Hadoop編譯
- gcc 編譯器與 clang 編譯器GC編譯
- 一張圖解析 編譯器編譯流程圖解編譯
- ubuntu下編譯交叉編譯工具鏈Ubuntu編譯