導航:首頁 > 編程語言 > python動態編譯

python動態編譯

發布時間:2022-12-12 09:43:30

⑴ 初學python,用Sublime Text2,怎樣編譯

1.「python新手用 sublime text2 編譯錯誤」
sublime只是個文本編輯器,不是編譯器。
2.【整理】Python語言簡介
搞懂Python是動態語言,不需要編譯。
3.【整理】【多圖詳解】如何在Windows下開發Python:在cmd下運行Python腳本+如何使用Python Shell(command line模式和GUI模式)+如何使用Python IDE
以明白,文本編輯器,和python代碼之間的關系。

⑵ python用什麼解釋器

Python的編輯器也是眾多的,下面說下幾種:

⑶ python的程序可以編譯成二進制可執行文件么

python下編譯py成pyc和pyo
其實很簡單,

python -m py_compile file.py
python -m py_compile /root/src/{file1,file2}.py
編譯成pyc文件。
也可以寫份腳本來做這事:
Code:

import py_compile
py_compile.compile('path') //path是包括.py文件名的路徑


python -O -m py_compile file.py
編譯成pyo文件。
1.其中的 -m 相當於腳本中的import,這里的-m py_compile 相當於上面的 import py_compile
2.-O 如果改成 -OO 則是刪除相應的 pyo文件,具體幫助可以在控制台輸入 python -h 查看
========================
from:http://blogold.chinaunix.net/u3/93255/showart_1944929.html
什麼是pyc文件
pyc是一種二進制文件,是由py文件經過編譯後,生成的文件,是一種byte code,py文件變成pyc文件後,載入的速度有所提高,而且pyc是一種跨平台的位元組碼,是由python的虛擬機來執行的,這個是類似於JAVA或者.NET的虛擬機的概念。pyc的內容,是跟python的版本相關的,不同版本編譯後的pyc文件是不同的,2.5編譯的pyc文件,2.4版本的 python是無法執行的。
什麼是pyo文件
pyo是優化編譯後的程序 python -O 源文件即可將源程序編譯為pyo文件

什麼是pyd文件
pyd是python的動態鏈接庫。

為什麼需要pyc文件
這個需求太明顯了,因為py文件是可以直接看到源碼的,如果你是開發商業軟體的話,不可能把源碼也泄漏出去吧?所以就需要編譯為pyc後,再發布出去。當然,pyc文件也是可以反編譯的,不同版本編譯後的pyc文件是不同的,根據python源碼中提供的opcode,可以根據pyc文件反編譯出 py文件源碼,網上可以找到一個反編譯python2.3版本的pyc文件的工具,不過該工具從python2.4開始就要收費了,如果需要反編譯出新版本的pyc文件的話,就需要自己動手了(俺暫時還沒這能力^--^),不過你可以自己修改python的源代碼中的opcode文件,重新編譯 python,從而防止不法分子的破解。
生成單個pyc文件
python就是個好東西,它提供了內置的類庫來實現把py文件編譯為pyc文件,這個模塊就是 py_compile 模塊。
使用方法非常簡單,如下所示,直接在idle中,就可以把一個py文件編譯為pyc文件了。(假設在windows環境下)
import py_compile
py_compile.compile(r'H:\game\test.py')
compile函數原型:
compile(file[, cfile[, dfile[, doraise]]])
file 表示需要編譯的py文件的路徑
cfile 表示編譯後的pyc文件名稱和路徑,默認為直接在file文件名後加c 或者 o,o表示優化的位元組碼

from:http://www.cnblogs.com/dkblog/archive/2009/04/16/1980757.html

⑷ 怎麼看寫的python代碼的功能模塊的核心功能

我真正開始思考這個問題是當我開始思考將Python編譯成WebAssembly都需要什麼的時候。這並不是要實現另一個解釋器,而是從Python源代碼產生靜態的WebAssembly,並且它依然可以稱為「Python」
我知道的,通過eva()或compile()進行動態編譯可能不容易實現,因為WebAssembly的安全模型會在載入時驗證模塊。這意味著沒有辦法在其他代碼的內存空間內運行任意代碼,這可能會加劇實現REPL的難度。
但這讓我思考:Python真的需要REPL嗎?別誤會我的意思,它非常方便,但是我的意思是,如果某個實現不包含REPL,那麼它還是Python嗎?我認為無REPL的Python仍然是Python,只是缺少可能是關鍵的核心功能。
這不禁讓我思考必須將Python的哪些部分視為「 Python」的想法。
沒有locals()行不行?能夠將定義的所有局部變數及其值都收集到一個字典中,這是非常動態的東西。如果你使用像CPython這種解釋器,那麼只需要從當前的執行幀里取一些東西就能獲得locals。但在編譯語言中,實現這一點需要大量工作,因為你必須知道應當何時收集這些信息,因為調用locals()的時候並不一定所有信息都存在。
如果有人重載了locals()怎麼辦?同樣,在CPython中這也不是什麼問題,因為builtins模塊有一個__dict__屬性,只需要重載它,就會向下傳遞到以後的調用中。但在編譯語言中,做類似的檢測需要大量的工作,最終會影響性能。
那麼sys.settrace()呢?它會觸發每個位元組的回調,而如果代碼已經編譯,這一點是無法實現的。盡管你可以通過檢查每行末尾是否設置了跟蹤函數來模仿這一行為,但這似乎有點過了,因為絕大多數情況下這種鉤子並不存在(盡管可以實現為編譯器開關)。
那麼sys._getframe()呢?編譯語言並不一定能夠直接訪問每個執行幀,那麼你還要不要模擬這一行為?由於任何函數都可以請求執行幀,你必須時刻准備著提供執行幀。
可見,Python中有很多東西加劇了編譯的難度(因此Nuitka擁有更大的能力來應對這一挑戰)。但是我敢打賭,上面提到的內容在99.9%的情況下都不會使用,因此,如果這些功能沒有實現,那麼是否仍可以將其視為「Python」?
具備多少兼容性才有意義?
這個問題我沒有很好的答案。但是這個問題的答案標志著實現Python的難度以及與現有軟體的兼容性。我會說,我認為WebAssembly不需要支持大量的Python軟體。WebAssembly可以訪問Rust和JavaScript等其他語言生態系統,因此你需要的某個東西完全有可能在其他語言中已經實現了。
我沒有答案
也許我們可以開發一個將Python代碼直接轉換為WebAssembly並犧牲性能兼容性的編譯器。也許我們可以開發針對WebAssembly設計的解釋器,同時與先前已有的代碼保持兼容性。也許可以僅在其WebAssembly工作中支持RustPython。也許Pyodide可以實現這一點。我認為這些都有可能,這些都有可能激發人們的興趣,進而產生更好的結果。

⑸ CPython是什麼PyPy是什麼Python和這兩個東西有什麼關系

CPython:是用C語言實現Pyhon,是目前應用最廣泛的解釋器。最新的語言特性都是在這個上面先實現,基本包含了所有第三方庫支持,但是CPython有幾個缺陷,一是全局鎖使Python在多線程效能上表現不佳,二是CPython無法支持JIT(即時編譯),導致其執行速度不及Java和Javascipt等語言。於是出現了Pypy。

Pypy:是用Python自身實現的解釋器。針對CPython的缺點進行了各方面的改良,性能得到很大的提升。最重要的一點就是Pypy集成了JIT。但是,Pypy無法支持官方的C/Python API,導致無法使用例如Numpy,Scipy等重要的第三方庫。這也是現在Pypy沒有被廣泛使用的原因吧。

而PyPy與CPython的不同在於,別的一些python實現如CPython是使用解釋執行的方式,這樣的實現方式在性能上是很凄慘的。而PyPy使用了JIT(即時編譯)技術,在性能上得到了提升。

⑹ 什麼是python解釋器

什麼是python解釋器?
當我們編寫Python代碼時,我們得到的是一個包含Python代碼的以.py為擴展名的文本文件。要運行代碼,就需要Python解釋器去執行.py文件。
由於整個Python語言從規范到解釋器都是開源的,所以理論上,只要水平夠高,任何人都可以編寫Python解釋器來執行Python代碼(當然難度很大)。事實上,確實存在多種Python解釋器。
CPython
當我們從Python官方網站下載並安裝好Python 2.7後,我們就直接獲得了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,所以叫CPython。在命令行下運行python就是啟動CPython解釋器。
CPython是使用最廣的Python解釋器。教程的所有代碼也都在CPython下執行。
IPython
IPython是基於CPython之上的一個互動式解釋器,也就是說,IPython只是在交互方式上有所增強,但是執行Python代碼的功能和CPython是完全一樣的。好比很多國產瀏覽器雖然外觀不同,但內核其實都是調用了IE。
CPython用>>>作為提示符,而IPython用In [序號]:作為提示符。
PyPy
PyPy是另一個Python解釋器,它的目標是執行速度。PyPy採用JIT技術,對Python代碼進行動態編譯(注意不是解釋),所以可以顯著提高Python代碼的執行速度。
絕大部分Python代碼都可以在PyPy下運行,但是PyPy和CPython有一些是不同的,這就導致相同的Python代碼在兩種解釋器下執行可能會有不同的結果。如果你的代碼要放到PyPy下執行,就需要了解PyPy和CPython的不同點。
Jython
Jython是運行在Java平台上的Python解釋器,可以直接把Python代碼編譯成Java位元組碼執行。
IronPython
IronPython和Jython類似,只不過IronPython是運行在微軟.Net平台上的Python解釋器,可以直接把Python代碼編譯成.Net的位元組碼。
小結
Python的解釋器很多,但使用最廣泛的還是CPython。如果要和Java或.Net平台交互,最好的辦法不是用Jython或IronPython,而是通過網路調用來交互,確保各程序之間的獨立性。
本教程的所有代碼只確保在CPython 2.7版本下運行。請務必在本地安裝CPython(也就是從Python官方網站下載的安裝程序)。
此外,教程還內嵌一個IPython的Web版本,用來在瀏覽器內練習執行一些Python代碼。要注意兩者功能一樣,輸入的代碼一樣,但是提示符有所不同。另外,不是所有代碼都能在Web版本的IPython中執行,出於安全原因,很多操作(比如文件操作)是受限的,所以有些代碼必須在本地環境執行代碼。
相關推薦:《Python教程》以上就是小編分享的關於什麼是python解釋器的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!

⑺ python的編輯器有哪些

1、Sublime Text
Sublime Text輕量級的代碼編輯器,跨平台,支持幾十種編程語言,包括Python,Java,C/C++等,小巧靈活,運行輕快,支持代碼高亮、自動補全、語法提示,插件擴展豐富,是一個很不錯的代碼編輯器,配置相關文件後,可直接運行Python程序。Sublime Text 是開發者中最流行的編輯器之一,多功能,支持多種語言,而且在開發者社區非常受歡迎。Sublime 有自己的包管理器,開發者可以使用TA來安裝組件,插件和額外的樣式,所有這些都能提升你的編碼體驗。
2、VS Code
這是微軟開發的一個跨平台的代碼編輯器,支持常見的編程語言開發,插件拓展豐富,不僅智能補全、語法檢查、代碼高亮,還支持git功能,運行流暢,是一個很不錯的代碼編輯器,安裝相關插件後,可直接運行Python程序。
3、Atom
這是github專門為程序員開發的一個代碼編輯器,也是款平台的,界面簡潔直觀,使用起來非常方便,自動補全、代碼高亮、語法提示,啟動運行速度較快,對於初學者來說,是一個很不錯的代碼編輯器。
4、PyCharm:
這是一個專門用於Python開發的IDE,常見的代碼補全、智能提示、語法檢查,這個軟體都支持,除此之外,還集成了版本控制、單元測試、git功能,可以快速創建Django,Flask等Python Web框架,使用起來非常不錯,在開發大型項目中經常會用到,唯一的缺點就是,啟動起來有些卡,還不是免費的,不過可以下載社區免費版的。PyCharm是 JetBrains 開發的 Python IDE。PyCharm用於一般IDE具備的功能,比如, 調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制……另外,PyCharm還提供了一些很好的功能用於Django開發,同時支持Google App Engine,更酷的是,PyCharm支持IronPython。
5、Vim
Vim可以說是Python最好的IDE。Vim是高級文本編輯器,旨在提供實際的Unix編輯器『Vi』功能,支持更多更完善的特性集。Vim不需要花費太多的學習時間,一旦你需要一個無縫的編程體驗,那麼就會把Vim集成到你的工作流中。
6、Eclipse with PyDev
Eclipse是非常流行的IDE,而且已經有了很久的歷史。Eclipse with Pydev允許開發者創建有用和互動式的Web應用。PyDev是Eclipse開發Python的IDE,支持Python,Jython和IronPython的開發。
7、Emacs
GNU Emacs是可擴展,自定義的文本編輯器,甚至是更多的功能。Emacs的核心是Emacs Lisp解析器,但是支持文本編輯。如果你已經使用過Vim,可以嘗試一下Emacs。
8、Komodo Edit
Komodo Edit 是非常干凈專業的Python IDE。
9、Wing
Wingware的Python IDE兼容Python 2.x和3.x,可以結合Django, matplotlib, Zope, Plone, App Engine, PyQt, PySide, wxPython, PyGTK, Tkinter, mod_wsgi, pygame, Maya, MotionBuilder, NUKE, Blender 和其他 Python 框架使用。Wing支持測試驅動開發,集成了單元測試,nose和Django框架的執行和調試功能。Wing IDE啟動和運行的速度都非常快,支持 Windows, Linux, OS X和Python versi。
10、PyScripter
PyScripter是款免費開源的Python集成開發環境(IDE)。
11、The Eric Python IDE
Eric是全功能的Python和Ruby編輯器和IDE,是使用Python 編寫的。Eric基於跨平台的GUI工具包Qt,集成了高度靈活的Scintilla 編輯器控制項。Eric包括一個插件系統,允許簡單的對IDE進行功能性擴展。
12、Interactive Editor for Python
IEP是跨平台的Python IDE,旨在提供簡單高效的Python開發環境。包括兩個重要的組件:編輯器和Shell,並且提供插件工具集從各個方面來提高開發人員的效率。
以上就是我總結的好用的12款Python編輯器。因每個人的操作習慣不同,適合自己使用的才是好用的Python編輯器。

⑻ 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),隨著版本的不斷更新和語言新功能的添加,越來越多被用於獨立的,大型項目的開發,已被逐漸廣泛應用於系統管理任務的處理和Web編程。

Python在設計上堅持了清晰劃一的風格,這使得Python成為一門易讀,易維護,並且被大量用戶所歡迎的,用途廣泛的語言。

一個和其他大多數語言(如C)的區別就是,一個模塊的界限,完全是由每行的首字元在這一行的位置來決定的(而C語言是用一對花括弧{}來明確的定出模塊的邊界的,與字元的位置毫無關系)。這一點曾經引起過爭議。

因為自從C這類的語言誕生後,語言的語法含義與字元的排列方式分離開來,曾經被認為是一種程序語言的進步。不過不可否認的是,通過強製程序員們縮進(包括if,for和函數定義等所有需要使用模塊的地方),Python確實使得程序更加清晰和美觀。

⑽ Python是編譯型語言還是解釋型語言

Python是一種面向對象、解釋型、動態類型計算機程序設計語言
解釋型:程序無需編譯成二進制代碼,而是在執行時對語句一條一條編譯
動態類型:在程序執行過程中,可以改變變數的類型
它常被昵稱為膠水語言,能夠把用其他語言製作的各種模塊(尤其是C/C++)很輕松地聯結在一起

閱讀全文

與python動態編譯相關的資料

熱點內容
匯編程序員待遇 瀏覽:357
怎麼批量有順序的命名文件夾 瀏覽:209
杭州程序員健身 瀏覽:17
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:383
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362