導航:首頁 > 源碼編譯 > 編譯Python3位元組碼

編譯Python3位元組碼

發布時間:2022-04-27 05:51:57

⑴ 請教python3 bytearray 的問題

以前在 python2 中 a=bytes(bytearray((182,)))結果是 a='\xb6'
現在在 Python3 運行結果是 a=b'\xb6',嘗試各種 a.decode()均失敗了,請問如何能在 Python3 得到和 Python2 一樣的結果呢?

1. Python3 裡面的 str 已經是 unicode str 了。
2. bytes(bytearray((182,)))你用的就是 bytes 函數,所以理所當然的,無論 py2 還是 py3 都返回 bytes 類型,只不過 py2 時 bytes==str 而已。
3. 如果你想得到的是 latin_1 編碼的\xb6 代表的 str,請用.decode('latin-1')

⑵ python項目代碼變更後一定要重新編譯

一般的時候,你直接用py文件執行就可以了,python會自動編譯一些必要的文件。
另外目前py不同的位元組碼是變動的,也就是說不同版本的位元組碼還是不兼容,做不動一次編譯到處執行。
如果你現在三個文件 main.py, a.py, b.py
其中main是入口,而且在main中有import a.py 和import b.py
那麼只會生成a.pyc,b.pyc,而不會生成main.pyc
出發你自己用python中的compile命令編譯main.py
以上

⑶ c語言python有什麼區別

Python和C語言的區別:
1、語言類型:Python是一種基於解釋器的語言,解釋器會逐行讀取代碼,將Python編譯為位元組碼,然後由大型C程序解釋;C是一種編譯語言,完整的源代碼將直接編譯為機器代碼,由CPU直接執行。
2、內存管理:Python使用自動垃圾收集器進行內存管理;C語言中程序員必須自己進行內存管理。
3、應用:Python是一門通用編程語言,一個多範式,面向對象編程、程序編程、函數編程;C是結構化的編程語言,允許使用函數,選擇,迭代,主要用於硬體相關的應用程序。
4、速度:在運行速度方面,Python比較慢,C語言比較快,因為C語言是底層語言,運行效率優於Python。
5、復雜度:Python不需要聲明變數類型,C語言需要聲明變數類型;Python更易於學習,編寫以及閱讀,而C語言語法更加難。

⑷ 如何編譯Python程序生成.pyc文件

pyc文件就是 py程序編譯後得到的位元組碼文件 (py->pyc),python為了提高運行效率也會進行編譯,有時候編譯出pyc文件後,刪除py文件也不會出錯助於pyc文件的產生,給樓主舉例加入你有一個邏輯文件abcd.py,裡面有很多函數A,B,C,D,這個時候,如果你有一個test腳本去導入了abcd.py,只要你運行test腳本,在adcd.py目錄下就會生成一個abcd.pyc文件,而不管你是否需要調用A,B,C,D函數

⑸ python三位面試者的基本數據 代碼

1 簡述解釋型和編譯型編程語言?
解釋型語言編寫的程序不需要編譯,在執行的時候,專門有一個解釋器能夠將VB語言翻譯成機器語言,每個語句都是執行的時候才翻譯。這樣解釋型語言每執行一次就要翻譯一次,效率比較低。
用編譯型語言寫的程序執行之前,需要一個專門的編譯過程,通過編譯系統,把源高級程序編譯成為機器語言文件,翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執行效率高,但也不能一概而論,
部分解釋型語言的解釋器通過在運行時動態優化代碼,甚至能夠使解釋型語言的性能超過編譯型語言。
2 Python解釋器種類以及特點?
CPython
當 從Python官方網站下載並安裝好Python2.7後,就直接獲得了一個官方版本的解釋器:Cpython,這個解釋器是用C語言開發的,所以叫 CPython,在命名行下運行python,就是啟動CPython解釋器,CPython是使用最廣的Python解釋器。
IPython
IPython是基於CPython之上的一個互動式解釋器,也就是說,IPython只是在交互方式上有所增強,但是執行Python代碼的功能和CPython是完全一樣的,好比很多國產瀏覽器雖然外觀不同,但內核其實是調用了IE。
PyPy
PyPy是另一個Python解釋器,它的目標是執行速度,PyPy採用JIT技術,對Python代碼進行動態編譯,所以可以顯著提高Python代碼的執行速度。
Jython
Jython是運行在java平台上的Python解釋器,可以直接把Python代碼編譯成Java位元組碼執行。
IronPython
IronPython和Jython類似,只不過IronPython是運行在微軟.Net平台上的Python解釋器,可以直接把Python代碼編譯成.Net的位元組碼。
在Python的解釋器中,使用廣泛的是CPython,對於Python的編譯,除了可以採用以上解釋器進行編譯外,技術高超的開發者還可以按照自己的需求自行編寫Python解釋器來執行Python代碼,十分的方便!
3 位和位元組的關系?
bit就是位,也叫比特位,是計算機表示數據最小的單位
byte就是位元組
1byte=8bit
1byte就是1B
一個字元=2位元組
1KB=1024B
位元組就是Byte,也是B
位就是bit也是b
轉換關系如下:1)1KB=1024B
1B= 8b

⑹ python是什麼樣的編程語言

Python是一種跨平台的計算機程序設計語言。是一種面向對象的動態類型語言,最初被設計用於編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越來越多被用於獨立的、大型項目的開發。
Python還是一門解釋型的編程語言,Python也是面向對象的編程語言。對比其他編程語言來說,Python入門要簡單很多,更接近自然語言和正常思維方法,可以直接應用到工作中;當我們學習Python的時候非常容易上手,要比其他語言簡單很多,幾乎可以說是無所不能。
雖然Python體積小但是功能強大,可以做互聯網應用也可以做網站開發,靈活、易懂,開源。支持各種主流的操作系統,更加接近真實語言思維。在工業上Python被普遍使用快速建立概念模型,運行Python語言的產品已經成為了一種技術趨勢。而且Python擁有大量的開發庫,方便控制各種硬體,可以滿足不同場合需求。
使用Python進行項目開發的時候,代碼具有很高的可讀性,它設計時盡量使用其它語言經常使用的標點符號和英文單字,讓代碼看起來非常的簡單整潔,要比其他的語言更好。

⑺ python 原理及用法

Python解釋執行原理
 
      這里的解釋執行是相對於編譯執行而言的。我們都知道,使用C/C++之類的編譯性語言編寫的程序,是需要從源文件轉換成計算機使用的機器語言,經過鏈接器鏈接之後形成了二進制的可執行文件。運行該程序的時候,就可以把二進製程序從硬碟載入到內存中並運行。
      但是對於Python而言,python源碼不需要編譯成二進制代碼,它可以直接從源代碼運行程序。當我們運行python文件程序的時候,python解釋器將源代碼轉換為位元組碼,然後再由python解釋器來執行這些位元組碼。這樣,python就不用擔心程序的編譯,庫的鏈接載入等問題了。
      對於python解釋語言,有以下3方面的特性:
每次運行都要進行轉換成位元組碼,然後再有虛擬機把位元組碼轉換成機器語言,最後才能在硬體上運行。與編譯性語言相比,每次多出了編譯和鏈接的過程,性能肯定會受到影響。
由於不用關心程序的編譯和庫的鏈接等問題,開發的工作也就更加輕松啦。
python代碼與機器底層更遠了,python程序更加易於移植,基本上無需改動就能在多平台上運行。
      在具體計算機上實現一種語言,首先要確定的是表示該語言語義解釋的虛擬計算機,一個關鍵的問題是程序執行時的基本表示是實際計算機上的機器語言還是虛擬機的機器語言。這個問題決定了語言的實現。根據這個問題的回答,可以將程序設計語言劃分為兩大類:編譯型語言和解釋型語言。
  編譯實現的語言,如:C、C++、Fortran、Pascal、Ada。由編譯型語言編寫的源程序需要經過編譯,匯編和鏈接才能輸出目標代碼,然後由機器執行目標代碼。目標代碼是有機器指令組成,不能獨立運行,因為源程序中可能使用了一些匯編程序不能解釋引用的庫函數,而庫函數又不在源程序中,此時還需要鏈接程序完成外部引用和目標模板調用的鏈接任務,最後才能輸出可執行代碼。
  解釋型語言,解釋器不產生目標機器代碼,而是產生中間代碼,這種中間代碼與機器代碼不同,中間代碼的解釋是由軟體支持的,不能直接使用在硬體上。該軟體解釋器通常會導致執行效率較低,用解釋型語言編寫的程序是由另一個可以理解中間代碼的解釋程序執行的。和編譯的程序不同的是, 解釋程序的任務是逐一將源代碼的語句解釋成可執行的機器指令,不需要將源程序翻譯成目標代碼再執行。對於解釋型語言,需要一個專門的解釋器來執行該程序,每條語句只有在執行是才能被翻譯,這種解釋型語言每執行一次就翻譯一次,因而效率低下。
  Java解釋器,java很特殊,java是需要編譯的,但是沒有直接編譯成機器語言,而是編譯成位元組碼,然後在Java虛擬機上用解釋的方式執行位元組碼。Python也使用了類似的方式,先將python編譯成python位元組碼,然後由一個專門的python位元組碼解釋器負責解釋執行位元組碼。
  python是一門解釋語言,但是出於效率的考慮,提供了一種編譯的方法。編譯之後就得到pyc文件,存儲了位元組碼。python這點和java很類似,但是java與python不同的是,python是一個解釋型的語言,所以編譯位元組碼不是一個強制的操作,事實上,編譯是一個自動的過程,一般不會在意它的存在。編譯成位元組碼可以節省載入模塊的時間,提高效率。
  除了效率之外,位元組碼的形式也增加了反向工程的難度,可以保護源代碼。這個只是一定程度上的保護,反編譯還是可以的。

⑻ 基於C的Python編譯出的位元組碼文件,通常是什麼格式

編譯產生的二進制是.pyc格式

⑼ python文件後綴是什麼

python文件後綴總結:

(1).py:這通常是您編寫的輸入源代碼。

(2).py3:Python3腳本(Python3腳本通常以.py而不是.py3結尾,很少使用)。

(3).pyc:這是編譯好的位元組碼。如果導入一個模塊,python將生成一個*.pyc包含位元組碼的文件,以便再次導入它更容易(也更快)。

.pyc二進制文件可以反編譯成.py文件,反編譯軟體叫Easy Python Decompiler。

(4).pyo:這是在優化(-O)時創建的*.pyc文件,從Python3.5開始,Python將只使用.pyc而不是.pyo和.pyc。

(5).pyd:這基本上是一個Windows DLL文件。

(6).pyi:MyPy存根,存根文件(PEP 484)。

(7).pyw:用pythonw.exe執行的Windows的Python腳本。

(8).pyx:將Cython src轉換為C/C++。

(9).pyz:Python腳本歸檔(PEP 441)(這是一個包含標准Python腳本頭之後的二進制形式的壓縮Python腳本(ZIP)的腳本)。

(10).pywz:用於MS-Windows的Python腳本歸檔(PEP 441)(這是一個包含標准Python腳本頭之後的二進制形式的壓縮 Python腳本(ZIP)的腳本)。

(11).py [cod]:.gitignore中的通配符表示該文件可能是.pyc,.pyo或.pyd。

(12).rpy:包含應用程序或框架特定功能的RPython腳本或Python腳本。

(13).pyde:處理使用的Python腳本。

(14).pyp:Py4D Python插件。

(15).pyt:Python聲明文件。

眾多python培訓視頻,盡在python學習網,歡迎在線學習!

⑽ python如何編譯生成二進制文件

用py2exe 打包成可以執行文件

閱讀全文

與編譯Python3位元組碼相關的資料

熱點內容
ug命令視頻大全 瀏覽:610
箱子裝貨物最小容量編程 瀏覽:99
cad2014教程pdf 瀏覽:200
怎麼遍歷伺服器同一類型的文件 瀏覽:436
惠普戰66畫圖編程 瀏覽:806
java面向對象作業 瀏覽:570
cad插件製作加密狗 瀏覽:924
cmd命令對話框 瀏覽:291
安卓應用怎麼常駐 瀏覽:677
安卓手機怎麼群發小費才不會被鎖 瀏覽:742
相機文件夾設置 瀏覽:856
centos7php怎麼用 瀏覽:119
查看linux操作系統版本的命令 瀏覽:384
收支預演算法怎麼做 瀏覽:876
模板如何上傳到伺服器 瀏覽:372
如何同步安卓信息到新ipad 瀏覽:365
騰訊雲輕量伺服器流量警告 瀏覽:504
u盤備份linux 瀏覽:121
高壓縮比活塞 瀏覽:93
壓縮彈簧標准件 瀏覽:26