在多種情況/開發(fā)環(huán)境中運(yùn)行python腳本和代碼的技巧分享
Python 腳本或程序是包含可執(zhí)行 Python 代碼的文件。能夠運(yùn)行 Python 腳本和代碼可能是您作為 Python 開發(fā)人員所需的最重要的技能。通過(guò)運(yùn)行代碼,您將知道它是否按計(jì)劃工作。您還可以測(cè)試和調(diào)試代碼以修復(fù)錯(cuò)誤和問(wèn)題。最終,您編寫代碼是為了運(yùn)行它并完成任務(wù)。
在本教程中,您將學(xué)習(xí)如何:
- 從操作系統(tǒng)的命令行或終端運(yùn)行 Python 腳本
- 使用標(biāo)準(zhǔn) REPL 以交互模式執(zhí)行 Python 代碼和腳本
- 使用您喜愛的 IDE 或代碼編輯器運(yùn)行 Python 腳本
- 從操作系統(tǒng)的文件管理器中啟動(dòng)腳本和程序
為了充分利用本教程,您應(yīng)該了解使用操作系統(tǒng)終端和文件管理器的基礎(chǔ)知識(shí)。熟悉 Python 友好的 IDE 或代碼編輯器以及標(biāo)準(zhǔn)的 Python REPL(Read-Eval-Print Loop)也是有益的。
什么是腳本和模塊
在計(jì)算機(jī)中,腳本這個(gè)術(shù)語(yǔ)指的是一個(gè)文本文件,它包含了一個(gè)邏輯順序,你可以運(yùn)行它來(lái)完成一個(gè)特定的任務(wù)。這些命令通常用腳本語(yǔ)言表示,腳本語(yǔ)言是一種允許您操作、自定義和自動(dòng)化任務(wù)的編程語(yǔ)言。
腳本語(yǔ)言通常在運(yùn)行時(shí)解釋而不是編譯。因此,腳本通常由某種解釋器運(yùn)行,該解釋器負(fù)責(zé)執(zhí)行序列中的每個(gè)命令。
Python 是一種解釋性語(yǔ)言。因此,Python 程序通常被稱為腳本。然而,這個(gè)術(shù)語(yǔ)并不完全準(zhǔn)確,因?yàn)?Python 程序可能比簡(jiǎn)單的順序腳本復(fù)雜得多。
通常,包含可執(zhí)行 Python 代碼的文件稱為腳本(在更復(fù)雜的應(yīng)用程序中稱為入口點(diǎn)腳本),這是頂級(jí)程序的常用術(shù)語(yǔ)。另一方面,包含 Python 代碼的文件被設(shè)計(jì)為從另一個(gè) Python 文件導(dǎo)入和使用,稱為模塊。
因此,模塊和腳本之間的主要區(qū)別在于模塊存儲(chǔ)可導(dǎo)入的代碼,而腳本存儲(chǔ)可執(zhí)行的代碼。
注:可導(dǎo)入代碼是定義了某些內(nèi)容但不執(zhí)行特定操作的代碼。一些例子包括函數(shù)和類定義。相反,可執(zhí)行代碼是執(zhí)行特定操作的代碼。一些例子包括函數(shù)調(diào)用、循環(huán)和條件。
在下面的部分中,您將學(xué)習(xí)如何運(yùn)行 Python 腳本、程序和代碼。為了開始,您將從學(xué)習(xí)如何從操作系統(tǒng)的命令行或終端運(yùn)行它們開始。
如何在命令行中運(yùn)行 Python 腳本
在 Python 編程中,您可以以純文本文件編寫程序。按照慣例,包含 Python 代碼的文件使用 .py
擴(kuò)展名,腳本或可執(zhí)行程序和模塊之間的文件格式都沒有區(qū)別。所有這些都將使用相同的擴(kuò)展名。
注意:在 Windows 系統(tǒng)上,對(duì)于那些應(yīng)該使用
pythonw.exe
啟動(dòng)器的應(yīng)用程序,擴(kuò)展名也可以是.pyw
。
要?jiǎng)?chuàng)建 Python 腳本,您可以使用任何 Python 友好的代碼編輯器或 IDE (集成開發(fā)環(huán)境)。要繼續(xù)學(xué)習(xí)本教程,您需要?jiǎng)?chuàng)建一個(gè)基本腳本,因此啟動(dòng)您最喜歡的文本編輯器并創(chuàng)建一個(gè)包含以下代碼的新 hello.py
文件:
# hello.py print("Hello, World!")
這是 Python 中的經(jīng)典 "Hello, World!"
程序??蓤?zhí)行代碼包括對(duì)內(nèi)置的 print()
函數(shù)的調(diào)用,該函數(shù)在屏幕上顯示 "Hello, World!"
消息。
有了這個(gè)小程序,您就可以學(xué)習(xí)不同的運(yùn)行方法了。您將從命令行運(yùn)行程序開始,這可以說(shuō)是運(yùn)行腳本最常用的方法。
使用 python 命令
要使用 python
命令運(yùn)行 Python 腳本,您需要打開一個(gè)命令行窗口,并鍵入單詞 python
,然后鍵入目標(biāo)腳本的路徑:
Windows:
PS> python .\hello.py Hello, World! PS> py .\hello.py Hello, World!
Linux+macOS:
$ python ./hello.py Hello, World!
按下 Enter
后,您將在屏幕上看到短語(yǔ) Hello, World!
。如果前面的命令不能正常工作,那么你可能需要檢查 Python 是否在你的系統(tǒng)的 PATH
中。您也可以查看您保存的位置 hello.py
。
注意:在某些Linux發(fā)行版中,可能在某些macOS版本中,您可能需要使用
python3
命令,而不是簡(jiǎn)單的python
。
就這樣!你已經(jīng)運(yùn)行了你的第一個(gè)腳本!請(qǐng)注意,在 Windows 上,您還可以選擇使用 py
命令,該命令觸發(fā)控制臺(tái)應(yīng)用程序的 py.exe
啟動(dòng)器。這是運(yùn)行 Python 腳本的最基本和最實(shí)用的方法。
注意:如果您從未使用過(guò)命令行或終端,那么您可以嘗試以下操作,具體取決于您的操作系統(tǒng):
- 在 Windows 上,最新版本的操作系統(tǒng)附帶了一個(gè)名為 PowerShell 的應(yīng)用程序,您可以從搜索欄快速運(yùn)行。一旦你啟動(dòng)了這個(gè)程序,你就可以開始在里面運(yùn)行命令了。
- 在 Linux 上,有幾個(gè)應(yīng)用程序可以給予訪問(wèn)系統(tǒng)命令行的權(quán)限。在許多桌面環(huán)境中,您可以通過(guò)按
Ctrl
+Alt
+T
快速訪問(wèn)默認(rèn)終端。- 在 macOS 上,您可以從訪達(dá)中訪問(wèn)系統(tǒng)終端,方法是鍵入終端并在應(yīng)用出現(xiàn)時(shí)按
Enter
。
終端或 shell 應(yīng)用程序的一個(gè)很酷的特性是,您可以使用簡(jiǎn)單的語(yǔ)法重定向命令的輸出。如果你需要生成長(zhǎng)文本輸出的 Python 程序,并且您希望將其保存到一個(gè)文件中以供以后分析,則此功能可能非常有用。
在這些情況下,您可以執(zhí)行以下操作:
$ python hello.py > output.txt
在這個(gè)命令中, 重定向符 >
符號(hào)告訴shell將命令的輸出重定向到 output.txt
文件,而不是標(biāo)準(zhǔn)的系統(tǒng)輸出,即屏幕。此過(guò)程通常稱為重定向,它適用于 Windows 和類 Unix 系統(tǒng),如 Linux 和 macOS 。
如果輸出文件不存在,那么 shell 會(huì)自動(dòng)創(chuàng)建它。另一方面,如果文件已經(jīng)存在,那么 shell 會(huì)用新的輸出覆蓋它的舊內(nèi)容。
最后,如果你想把連續(xù)執(zhí)行的輸出添加到 output.txt
的末尾,那么你可以使用兩個(gè)尖括號(hào)( >>
)而不是一個(gè):
$ python hello.py >> output.txt
現(xiàn)在,shell 應(yīng)用程序?qū)旬?dāng)前輸出附加到 output.txt
的末尾。您將得到一個(gè)包含短語(yǔ) "Hello, World!"
兩次的文件。
直接使用腳本名稱
在 Windows 上,您還可以通過(guò)在命令行中輸入包含可執(zhí)行代碼的文件的名稱來(lái)運(yùn)行 Python 腳本:
PS> .\hello.py
一旦你寫了腳本的路徑并按下 Enter
,你會(huì)注意到一個(gè)新的終端窗口出現(xiàn)在你的屏幕上幾秒鐘,顯示腳本輸出。這是可能的,因?yàn)?Windows 將 .py
和 .pyw
文件分別關(guān)聯(lián)到 python.exe
和 pythonw.exe
。
這種在 Windows 上運(yùn)行 Python 腳本的方式可能很煩人,因?yàn)榇a在一個(gè)新的終端窗口中運(yùn)行,該窗口在執(zhí)行結(jié)束后自動(dòng)關(guān)閉。在大多數(shù)情況下,您將無(wú)法檢查程序的輸出。
在 Linux 和 macOS 上,您還可以直接運(yùn)行腳本。但是,這里的情況有點(diǎn)不同,您需要一些設(shè)置步驟。繼續(xù)并運(yùn)行以下命令:
$ ./hello.py bash: ./hello.py: Permission denied
Unix 系統(tǒng)優(yōu)先考慮安全性,這意味著您不能將任何文件作為程序執(zhí)行。所以,當(dāng)你嘗試直接運(yùn)行 hello.py
時(shí),你會(huì)得到一個(gè)權(quán)限被拒絕的錯(cuò)誤。要解決此問(wèn)題,您需要顯式地告訴系統(tǒng)該文件是可執(zhí)行的。為此,您可以使用 chmod
命令:
$ chmod +x hello.py
運(yùn)行此命令后,您的 hello.py
文件將是可執(zhí)行的。然而,這還不足以讓腳本正常運(yùn)行:
$ ./hello.py ./hello.py: line 1: syntax error near unexpected token `"Hello, World!"' ./hello.py: line 1: `print("Hello, World!")'
為什么現(xiàn)在又出現(xiàn)錯(cuò)誤?問(wèn)題是您的操作系統(tǒng)(OS)不知道使用哪個(gè)程序來(lái)運(yùn)行腳本,而是試圖使用 shell 本身來(lái)運(yùn)行腳本。您可以通過(guò)在 hello.py
文件中添加一個(gè)小內(nèi)容來(lái)解決這個(gè)問(wèn)題:
#!/usr/bin/env python3 print("Hello, World!")
您已在 hello.py
的開頭添加了新行。它現(xiàn)在以 Unix 風(fēng)格的 shebang 開始,這是一種特殊的注釋,您可以將其包含在腳本中,以告訴操作系統(tǒng)使用哪個(gè)程序來(lái)運(yùn)行此文件的內(nèi)容。在這種情況下,你告訴操作系統(tǒng)使用 Python。
注意:在 shebang 注釋中,你至少有兩種不同的方式來(lái)指定解釋器的路徑:
提供解釋器的絕對(duì)路徑,如
#!/usr/bin/python3
中所示使用操作系統(tǒng)的
env
命令,如#!/usr/bin/env python3
中所示第一種方法的可移植性較差,因?yàn)椴⒎撬?Unix 系統(tǒng)都將 Python 解釋器放在同一個(gè)目錄中。相比之下,第二種方法更安全,更便攜。它調(diào)用
env
命令來(lái)找出解釋器所在的位置。
現(xiàn)在,您可以直接從命令行運(yùn)行腳本:
$ ./hello.py Hello, World!
哇!這是一條漫長(zhǎng)的道路!然而,這些努力是值得的,現(xiàn)在當(dāng)你在 Unix 操作系統(tǒng)中創(chuàng)建一個(gè) Python 腳本來(lái)自動(dòng)化任務(wù)時(shí),你知道如何使它可執(zhí)行并從命令行運(yùn)行它。
使用 -m 選項(xiàng)運(yùn)行模塊
python
命令有一系列命令行選項(xiàng),在特定情況下很有用。例如,如果你想運(yùn)行一個(gè) Python 模塊,那么你可以使用命令 python -m <module-name>
。 -m
選項(xiàng)在Python的模塊搜索路徑 sys.path
中搜索模塊名稱并運(yùn)行其內(nèi)容:
$ python -m hello Hello, World!
在本例中,您將 hello.py
文件作為模塊運(yùn)行。這是可能的,因?yàn)?Python 會(huì)自動(dòng)將當(dāng)前目錄添加到其 sys.path
列表中。請(qǐng)注意, module-name
參數(shù)必須是模塊對(duì)象的名稱,而不是文件名。換句話說(shuō),你不包括 .py
后綴。
注意:當(dāng)您需要使用標(biāo)準(zhǔn)庫(kù)模塊的命令行界面(CLI)時(shí),通常使用
-m
選項(xiàng),例如pip
、venv
、http.server
和zipfile
。
如果目標(biāo)模塊不在 sys.path 中,那么你會(huì)得到一個(gè)錯(cuò)誤:
$ python -m missing .../python: No module named missing
在這個(gè)例子中, missing
名稱不在 sys.path
列表中,所以 Python 無(wú)法執(zhí)行它,因此它返回一個(gè)錯(cuò)誤。
如何以交互方式運(yùn)行 Python 代碼
運(yùn)行腳本并不是運(yùn)行 Python 代碼的唯一方法。因?yàn)?Python 是一種解釋型語(yǔ)言,所以你可以使用解釋器來(lái)交互式地運(yùn)行代碼。當(dāng)您運(yùn)行不帶參數(shù)的 python
命令時(shí),您將啟動(dòng)一個(gè)新的交互式會(huì)話或 REPL(讀取-評(píng)估-打印循環(huán))。在那里,你可以運(yùn)行任何 Python 代碼,并立即獲得有關(guān)代碼工作方式的反饋。
在接下來(lái)的部分中,你將學(xué)習(xí) Python 解釋器的基礎(chǔ)知識(shí)以及如何在其中運(yùn)行代碼。這些知識(shí)對(duì)你來(lái)說(shuō)非常有價(jià)值,特別是在那些需要快速測(cè)試一小段 Python 代碼的情況下。
了解Python解釋器
Python 是一種高級(jí)編程語(yǔ)言,具有清晰可讀的語(yǔ)法。Python 及其廣泛的包和庫(kù)生態(tài)系統(tǒng)可以提高您在各個(gè)領(lǐng)域的生產(chǎn)力。Python 這個(gè)名字也指的是一個(gè)叫做解釋器的軟件,它是允許你運(yùn)行 Python 代碼的程序。
解釋器是一層軟件,它在程序和計(jì)算機(jī)硬件之間工作,使代碼運(yùn)行。根據(jù)您使用的 Python 實(shí)現(xiàn),解釋器可以是用以下語(yǔ)言編寫的程序:
- C,比如 CPython,這是該語(yǔ)言的核心實(shí)現(xiàn)
- Python 本身,比如 PyPy,它是一個(gè)帶有即時(shí)(just-in time, JIT)編譯器的快速實(shí)現(xiàn)
- Java,比如 Jython,它可以利用 Java 生態(tài)系統(tǒng)
- .Net,比如 IronPython,它使用 .NET 生態(tài)系統(tǒng)
無(wú)論你使用什么解釋器,你寫的代碼都會(huì)在這個(gè)程序中運(yùn)行。因此,能夠運(yùn)行腳本和代碼的第一個(gè)條件是在操作系統(tǒng)上正確安裝解釋器。
Python解釋器可以以兩種不同的模式運(yùn)行代碼:
在腳本模式下,您使用解釋器將源文件作為可執(zhí)行程序運(yùn)行,就像您在上一節(jié)中學(xué)習(xí)的那樣。在這種情況下, Python 加載文件內(nèi)容,并按照程序的執(zhí)行流程逐行運(yùn)行代碼。
或者,交互模式是當(dāng)您啟動(dòng)解釋器并將其用作運(yùn)行直接鍵入的代碼的平臺(tái)時(shí)。這種模式對(duì)于學(xué)習(xí) Python 以及開發(fā)、測(cè)試和調(diào)試應(yīng)用程序非常有用。
交互式運(yùn)行 Python 代碼
交互式會(huì)話是運(yùn)行 Python 代碼的廣泛使用的工具。要啟動(dòng) Python 交互式會(huì)話或 REPL ,請(qǐng)打開命令行窗口,鍵入 python
命令,然后按 Enter
。
這些步驟將帶你進(jìn)入 Python 解釋器,它看起來(lái)像下面這樣:
macOS:
$ python Python 3.11.5 (main, Aug 31 2023, 19:03:43) [Clang 14.0.3 (clang-1403.0.22.14.1)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
Linux:
$ python Python 3.11.5 (main, Sep 13 2023, 18:12:18) [GCC 11.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
Windows:
PS> python Python 3.11.5 (tags/v3.11.5:cce6ba9, Aug 24 2023, 14:38:34) [MSC v.1936 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>>
交互模式的標(biāo)準(zhǔn)主提示符由三個(gè)右尖括號(hào) >>>
組成。所以,只要你看到這些字符,你就知道你進(jìn)入了交互模式。
注意:標(biāo)準(zhǔn) REPL 也有一個(gè)二級(jí)提示符,由三個(gè)句點(diǎn)(
...
)組成。在向復(fù)合語(yǔ)句(如條件語(yǔ)句、函數(shù)和類定義以及循環(huán))中添加縮進(jìn)行時(shí),將出現(xiàn)此提示。
Python 解釋器是一種使用語(yǔ)言與計(jì)算機(jī)進(jìn)行交互的方式。就像在線聊天一樣。它也被稱為 REPL,因?yàn)樗诘讓舆\(yùn)行四個(gè)步驟:
- Reading 讀取輸入,輸入由 Python 代碼作為表達(dá)式和語(yǔ)句組成
- Evaluating 評(píng)估 Python 代碼,這會(huì)產(chǎn)生結(jié)果或?qū)е赂弊饔?/li>
- Printing 打印任何輸出,以便您可以檢查代碼的結(jié)果并獲得即時(shí)反饋
- Looping返回到第一步繼續(xù)交互
Python 的這個(gè)特性是一個(gè)強(qiáng)大的工具,你將在 Python 編碼冒險(xiǎn)中需要它,特別是當(dāng)你正在學(xué)習(xí)這門語(yǔ)言或處于開發(fā)過(guò)程的早期階段時(shí)。
一旦啟動(dòng)了 REPL 會(huì)話,就可以隨心所欲地編寫和運(yùn)行 Python 代碼。唯一的缺點(diǎn)是,當(dāng)你關(guān)閉會(huì)話時(shí),你的代碼將消失。這是腳本模式和交互模式之間的另一個(gè)區(qū)別。他們堅(jiān)持不懈。
當(dāng)你以交互方式工作時(shí),Python 會(huì)立即計(jì)算并執(zhí)行每個(gè)表達(dá)式和語(yǔ)句:
>>> print("Hello, World!") Hello, World! >>> 2 + 5 7 >>> print("Welcome to Real Python!") Welcome to Real Python!
交互式會(huì)話將允許您測(cè)試您執(zhí)行的每一段代碼。這就是為什么這個(gè)工具是一個(gè)很棒的開發(fā)助手和一個(gè)很好的空間來(lái)實(shí)驗(yàn)語(yǔ)言和測(cè)試想法。
要退出交互模式并跳回到系統(tǒng)外殼,您可以使用以下選項(xiàng)之一:
- 執(zhí)行內(nèi)置的
quit()
或exit()
函數(shù) - 在 Windows 上按
Ctrl
+Z
和Enter
組合鍵,或在 Unix 系統(tǒng)(如 Linux 和 macOS )上按Ctrl
+D
組合鍵
繼續(xù)并嘗試使用 Python REPL 。您將看到它是一個(gè)非常好的開發(fā)工具,您必須將它保存在您的工具箱中。
如何從 Python 代碼中運(yùn)行 Python
您還可以從交互式會(huì)話或 .py
文件運(yùn)行Python腳本和模塊。這一選項(xiàng)提供了多種可能性。在下面的部分中,您將探索一些工具和技術(shù),這些工具和技術(shù)將允許您從 Python 代碼運(yùn)行腳本和代碼。
import 語(yǔ)句的優(yōu)點(diǎn)
當(dāng)您從另一個(gè)模塊、腳本或交互式會(huì)話導(dǎo)入模塊時(shí),實(shí)際發(fā)生的是 Python 加載其內(nèi)容以供以后訪問(wèn)和使用。有趣的是, import
語(yǔ)句運(yùn)行導(dǎo)入模塊中的任何可執(zhí)行代碼。
當(dāng)模塊只包含類、函數(shù)、變量和常量定義時(shí),您可能不會(huì)意識(shí)到代碼已經(jīng)運(yùn)行。但是,當(dāng)模塊包含對(duì)函數(shù)、方法或其他生成可見結(jié)果的語(yǔ)句的調(diào)用時(shí),您將看到它的執(zhí)行。
這為您提供了另一個(gè)運(yùn)行腳本的選項(xiàng):
>>> import hello Hello, World!
您會(huì)注意到 import
在每個(gè)會(huì)話中只運(yùn)行一次代碼。第一次導(dǎo)入模塊后,即使修改了模塊的內(nèi)容,后續(xù)的導(dǎo)入也不會(huì)執(zhí)行任何操作。這是因?yàn)?nbsp;import
操作是費(fèi)時(shí)的,Python 需要一些額外的步驟來(lái)優(yōu)化整體性能:
>>> import hello # Do nothing >>> import hello # Do nothing again
這兩個(gè)導(dǎo)入沒有任何作用,因?yàn)?Python 知道 hello
模塊已經(jīng)被導(dǎo)入了。因此,Python 跳過(guò)了 import
。這種行為可能看起來(lái)很煩人,尤其是當(dāng)您正在處理模塊并試圖在交互式會(huì)話中測(cè)試更改時(shí)。這是一種有意的優(yōu)化。
使用 importlib 標(biāo)準(zhǔn)庫(kù)模塊
在 Python 標(biāo)準(zhǔn)庫(kù)中,您可以找到 importlib
模塊。這個(gè)模塊提供了 import_module()
函數(shù),它允許您以編程方式導(dǎo)入模塊。
使用 import_module()
,您可以模擬 import
操作,因此可以執(zhí)行任何模塊或腳本??纯催@個(gè)例子:
>>> import importlib >>> importlib.import_module("hello") Hello, World! <module 'hello' from '/home/username/hello.py'>
import_module()
函數(shù)的作用是:導(dǎo)入一個(gè)模塊,并將其名稱添加到當(dāng)前的命名空間。它還運(yùn)行目標(biāo)模塊包含的任何可執(zhí)行代碼。這就是為什么你在屏幕上顯示 Hello, World!
。
你已經(jīng)知道,一旦你第一次導(dǎo)入了一個(gè)模塊,你就不能再用另一個(gè) import
語(yǔ)句導(dǎo)入它了。如果你想重新加載模塊并再次運(yùn)行它,那么你可以使用 reload()
函數(shù),它強(qiáng)制解釋器再次導(dǎo)入模塊:
>>> import hello Hello World! >>> import importlib >>> importlib.reload(hello) Hello World! <module 'hello' from '/home/username/hello.py'>
這里需要注意的一點(diǎn)是, reload()
的參數(shù)必須是模塊對(duì)象的名稱,而不是字符串。因此,要成功使用 reload()
,您需要提供一個(gè)已經(jīng)導(dǎo)入的模塊。
利用內(nèi)置 exec() 功能的強(qiáng)大功能
到目前為止,您已經(jīng)了解了一些運(yùn)行 Python 腳本的方便方法。在本節(jié)中,您將學(xué)習(xí)如何使用內(nèi)置的 exec()
函數(shù)來(lái)實(shí)現(xiàn)這一點(diǎn),該函數(shù)支持 Python 代碼的動(dòng)態(tài)執(zhí)行。
exec()
函數(shù)提供了一種從代碼內(nèi)部運(yùn)行腳本的替代方法:
>>> with open("hello.py") as hello: ... exec(hello.read()) ... Hello, World!
在本例中,使用 with
語(yǔ)句打開 hello.py
文件進(jìn)行閱讀。然后,使用 .read()
方法讀取文件的內(nèi)容。此方法返回一個(gè)字符串,您將其傳遞給 exec()
執(zhí)行。
在使用 exec()
函數(shù)時(shí)必須小心,因?yàn)樗馕吨恍┲匾陌踩L(fēng)險(xiǎn),特別是當(dāng)您使用它來(lái)運(yùn)行外部代碼時(shí)。要了解有關(guān)此函數(shù)的更多信息,請(qǐng)查看 Python 的 exec()
:執(zhí)行動(dòng)態(tài)生成的代碼。
如何在 IDE 和代碼編輯器上運(yùn)行 Python 腳本
要開發(fā)大型復(fù)雜的應(yīng)用程序,您應(yīng)該使用集成開發(fā)環(huán)境(IDE)或包含程序員友好功能的高級(jí)文本編輯器。
這些程序中的大多數(shù)都有允許您從環(huán)境本身內(nèi)部運(yùn)行程序的選項(xiàng)。它們通常包含 Run 或 Build 操作,這些操作通??梢詮墓ぞ邫诨蛑鞑藛沃蝎@得。
Python 的標(biāo)準(zhǔn)發(fā)行版將 IDLE 作為默認(rèn) IDE。您可以使用此程序編寫、調(diào)試、修改和運(yùn)行模塊和腳本。其他 IDE,如PyCharm 和 Thonny,也允許您從環(huán)境內(nèi)部運(yùn)行腳本。例如,在 PyCharm 中,您可以按鍵盤上的 Ctrl
+ R
來(lái)快速運(yùn)行應(yīng)用的入口腳本。
Visual Studio Code 和 Sublime Text 等高級(jí)代碼編輯器也允許您運(yùn)行腳本。例如,在 Visual Studio Code 中,您可以按 Ctrl
+ F5
來(lái)運(yùn)行當(dāng)前活動(dòng)的文件。
若要了解如何從首選 IDE 或代碼編輯器運(yùn)行 Python 腳本,請(qǐng)查看其特定文檔或快速查看程序的 GUI。你很快就會(huì)找到答案。
如何在文件管理器中運(yùn)行 Python 腳本
通過(guò)雙擊文件管理器中的腳本圖標(biāo)來(lái)運(yùn)行腳本是運(yùn)行 Python 腳本的另一種方法。在開發(fā)階段,您可能不會(huì)經(jīng)常使用此選項(xiàng),但在將代碼發(fā)布到生產(chǎn)環(huán)境時(shí),您可能會(huì)使用它。
為了通過(guò)雙擊運(yùn)行腳本,您必須滿足一些條件,這些條件取決于您的操作系統(tǒng)。
例如,Windows將擴(kuò)展名 .py
和 .pyw
分別與程序 python.exe
和 pythonw.exe
相關(guān)聯(lián)。這允許您通過(guò)雙擊腳本圖標(biāo)來(lái)運(yùn)行腳本。
在 Unix 系統(tǒng)上,您可能可以通過(guò)在文件管理器中雙擊腳本來(lái)運(yùn)行腳本。要實(shí)現(xiàn)這一點(diǎn),您的腳本必須具有執(zhí)行權(quán)限,并且需要使用您已經(jīng)學(xué)習(xí)過(guò)的 shebang 技巧。與 Windows 一樣,當(dāng)涉及到命令行界面腳本時(shí),您可能不會(huì)在屏幕上看到任何輸出。
通過(guò)雙擊執(zhí)行腳本有幾個(gè)限制,并取決于許多因素,如操作系統(tǒng),文件管理器,執(zhí)行權(quán)限和文件關(guān)聯(lián)。不過(guò),對(duì)于生產(chǎn)就緒的腳本和程序,您可以將此替代方案視為一個(gè)可行的選擇。
總結(jié)
您已經(jīng)獲得了以多種方式在各種情況和開發(fā)環(huán)境中運(yùn)行 Python 腳本和代碼所需的知識(shí)和技能。當(dāng)您需要運(yùn)行生產(chǎn)就緒腳本時(shí),命令行將是您最好的朋友。在開發(fā)過(guò)程中,IDE 或代碼編輯器將提供正確的選項(xiàng)來(lái)運(yùn)行代碼。
在本教程中,您已經(jīng)學(xué)習(xí)了如何:
- 在當(dāng)前操作系統(tǒng)中從命令行或終端運(yùn)行 Python 腳本
- 使用 Python 的標(biāo)準(zhǔn)REPL以交互模式執(zhí)行代碼
- 在開發(fā)過(guò)程中使用您喜愛的 IDE 或代碼編輯器運(yùn)行 Python 腳本
- 從操作系統(tǒng)的文件管理器啟動(dòng)腳本和程序
這些技能對(duì)于 Python 開發(fā)人員來(lái)說(shuō)是必不可少的。它們將使您的開發(fā)過(guò)程更快,更高效,更靈活。
以上就是在多種情況/開發(fā)環(huán)境中運(yùn)行python腳本和代碼的技巧分享的詳細(xì)內(nèi)容,更多關(guān)于運(yùn)行python腳本和代碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python實(shí)現(xiàn)Mysql數(shù)據(jù)統(tǒng)計(jì)及numpy統(tǒng)計(jì)函數(shù)
這篇文章主要介紹了Python實(shí)現(xiàn)Mysql數(shù)據(jù)統(tǒng)計(jì)的實(shí)例代碼,給大家介紹了Python數(shù)據(jù)分析numpy統(tǒng)計(jì)函數(shù)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07python中自帶的三個(gè)裝飾器的實(shí)現(xiàn)
這篇文章主要介紹了python中自帶的三個(gè)裝飾器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11使用Python實(shí)現(xiàn)操作控制鼠標(biāo)和鍵盤
Python 有很多的庫(kù)可以實(shí)現(xiàn)各種各樣的功能,比如使用 pynput 操作,下面小編就來(lái)和大家詳細(xì)介紹一下如何使用pynput進(jìn)行操作控制鼠標(biāo)和鍵盤吧2024-02-02django多種支付、并發(fā)訂單處理實(shí)例代碼
在本篇文章里小編給大家整理的是關(guān)于django多種支付、并發(fā)訂單處理實(shí)例代碼,需要的朋友們可以學(xué)習(xí)下。2019-12-12Python word文本自動(dòng)化操作實(shí)現(xiàn)方法解析
這篇文章主要介紹了Python word文本自動(dòng)化操作實(shí)現(xiàn)方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11python 中的paramiko模塊簡(jiǎn)介及安裝過(guò)程
這篇文章主要介紹了python 中的paramiko模塊簡(jiǎn)介及安裝過(guò)程,通過(guò)實(shí)例詳解給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-02-02python多進(jìn)程實(shí)現(xiàn)進(jìn)程間通信實(shí)例
這篇文章主要介紹了python多進(jìn)程實(shí)現(xiàn)進(jìn)程間通信實(shí)例,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11