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編譯
- Linux 編譯安裝 PythonLinux編譯Python
- python如何編譯成exePython編譯
- 編譯python(cpython)的原始碼及其用途編譯Python原始碼
- NEO Python編譯器介紹Python編譯
- [Python]批量編譯pyc檔案Python編譯
- 重新編譯python(親證有效)編譯Python
- python程式碼混淆與編譯Python編譯
- python反編譯之位元組碼Python編譯
- Python將py檔案編譯為exe的方法Python編譯
- Cython加密python程式碼防止反編譯加密Python編譯
- CentOS 全新編譯安裝 Python3.8CentOS編譯Python
- cmake編譯指定自己編譯的庫路徑編譯
- 編譯器的自展和自舉、交叉編譯編譯
- SCSS 的編譯CSS編譯
- Java編譯與反編譯Java編譯
- Python語言常用的編譯器有哪些?工具推薦!Python編譯
- cython 編譯python程式碼時候找不到Python.h編譯Python
- 都有Python了,還要什麼編譯器!Python編譯
- centos7編譯安裝python3CentOS編譯Python
- CentOS下編譯安裝Python3教程CentOS編譯Python
- CentOS 7下編譯安裝Python3CentOS編譯Python
- libusb android ndk編譯--編譯mipsAndroid編譯
- hadoop編譯—+2.x編譯Hadoop編譯
- N1064編譯鏈編譯編譯
- Java程式碼的編譯與反編譯那些事兒Java編譯
- 編譯編譯
- Python 的編譯器geany-1.36無法下載問題Python編譯
- python pyinstaller打包的exe 反編譯問題記錄 破解加密Python編譯加密
- [譯] 優化 Swift 的編譯時間優化Swift編譯
- Centos編譯Python3.10解決openssl異常CentOS編譯Python
- Arm64架構下編譯便攜Python架構編譯Python
- 程式碼線上編譯器(上)- 編輯及編譯編譯
- hi3520d核心編譯編譯方法編譯
- Make編譯之編譯32bit ffmpeg編譯