精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

漲見識了,在終端執行 Python 代碼的 6 種方式!

開發 后端
為了我們推出的 VS Code 的 Python 插件 [1],我寫了一個簡單的腳本來生成變更日志 [2](類似于Towncrier [3],但簡單些,支持 Markdown,符合我們的需求)。在發布過程中,有一個步驟是運行python news ,它會將 Python 指向我們代碼中的"news"目錄。

 為了我們推出的 VS Code 的 Python 插件[1],我寫了一個簡單的腳本來生成變更日志[2](類似于Towncrier[3],但簡單些,支持 Markdown,符合我們的需求)。在發布過程中,有一個步驟是運行python news,它會將 Python 指向我們代碼中的"news"目錄。

[[329218]]

前幾天,一位合作者問這是如何工作的,似乎我們團隊中的每個人都知道如何使用-m?請參閱我的有關帶 -m 使用 pip 的文章[4],了解原因。

這使我意識到其他人可能不知道有五花八門的方法可以將 Python 指向要執行的代碼,因此有了這篇文章。

1、通過標準輸入和管道

因為如何用管道傳東西給一個進程是屬于 shell 的內容,我不打算深入解釋。毋庸置疑,你可以將代碼傳遞到 Python 中。

 

  1. # 管道傳內容給 python 
  2. echo "print('hi')" | python 

如果將文件重定向到 Python,這顯然也可以。

  1. # 重定向一個文件給 python 
  2. python < spam.py 

歸功于 Python 的 UNIX 傳統,這些都不太令人感到意外。

2、通過 -c 指定的字符串

如果你只需要快速地檢查某些內容,則可以在命令行中將代碼作為字符串傳遞。

 

  1. # 使用 python 的 -c 參數 
  2. python -c "print('hi')" 

當需要檢查僅一行或兩行代碼時,我個人會使用它,而不是啟動 REPL(譯注:Read Eval Print Loop,即交互式解釋器,例如在 windows 控制臺中輸入python, 就會進入交互式解釋器。-c 參數用法可以省去進入解釋器界面的過程)

3、文件的路徑

最眾所周知的傳代碼給 python 的方法很可能是通過文件路徑。

 

  1. # 指定 python 的文件路徑 
  2. python spam.py 

要實現這一點的關鍵是將包含該文件的目錄放到sys.path里。這樣你的所有導入都可以繼續使用。但這也是為什么你不能/不應該傳入包含在一個包里的模塊路徑。因為sys.path可能不包含該包的目錄,因此所有的導入將相對于與你預期的包不同的目錄。

4、對包使用 -m

執行 Python 包的正確方法是使用 -m 并指定要運行的包名。

 

  1. python -m spam 

它在底層使用了runpy[5]。要在你的項目中做到這點,只需要在包里指定一個__main__.py文件,它將被當成__main__執行。而且子模塊可以像任何其它模塊一樣導入,因此你可以對其進行各種測試。

我知道有些人喜歡在一個包里寫一個main子模塊,然后將其__main__.py寫成:

 

  1. from . import main 
  2.  
  3. if __name__ == "__main__"
  4.     main.main() 

就我個人而言,我不感冒于單獨的main模塊,而是直接將所有相關的代碼放入__main__.py,因為我感覺這些模塊名是多余的。

(譯注:即作者不關心作為入口文件的"main"或者“__main__”模塊,因為執行時只需用它們的包名即可。我認為這也暗示了入口模塊不該再被其它模塊 import。我上篇文章 [6]比作者的觀點激進,認為連那句 if 語句都不該寫。)

5、目錄

定義__main__.py也可以擴展到目錄。如果你看一下促成此博客文章的示例,python news可執行,就是因為 news 目錄有一個 __main__.py 文件。該目錄就像一個文件路徑被 Python 執行了。

 

 

 

 

現在你可能會問:“為什么不直接指定文件路徑呢?”好吧,坦白說,關于文件路徑,有件事得說清楚。😄在發布過程中,我可以簡單地寫上說明,讓運行python news/announce.py,但是并沒有確切的理由說明這種機制何時存在。

再加上我以后可以更改文件名,而且沒人會注意到。再加上我知道代碼會帶有輔助文件,因此將其放在目錄中而不是單獨作為單個文件是有意義的。

當然,我也可以將它變為一個使用 -m 的包,但是沒必要,因為 announce 腳本很簡單,我知道它要保持成為一個單獨的自足的文件(少于 200 行,并且測試模塊也大約是相同的長度)

況且,__main__.py文件非常簡單。

 

  1. import runpy 
  2. # Change 'announce' to whatever module you want to run. 
  3. runpy.run_module('announce', run_name='__main__', alter_sys=True

現在顯然必須要處理依賴關系,但是如果你的腳本僅使用標準庫或將依賴模塊放在__main__.py旁邊(譯注:即同級目錄),那么就足夠了!

(譯注:我覺得作者在此有點“炫技”了,因為這種寫法的前提是得知道 runpy 的用法,但是就像前一條所寫的用 -m 參數運行一個包,在底層也是用了 runpy。不過炫技的好處也非常明顯,即__main__.py 里不用導入 announce 模塊,還是以它為主模塊執行,也就不會破壞原來的依賴導入關系)

6、執行一個壓縮文件

如果你確實有多個文件和/或依賴模塊,并且希望將所有代碼作為一個單元發布,你可以用一個__main__.py,放置在一個壓縮文件中,并把壓縮文件所在目錄放在 sys.path 里,Python 會替你運行__main__.py文件。

 

  1. # 將一個壓縮包傳給 Python 
  2. python app.pyz 

人們現在習慣上用 .pyz 文件擴展名來命名此類壓縮文件,但這純粹是傳統,不會影響任何東西;你當然也可以用 .zip 文件擴展名。

為了簡化創建此類可執行的壓縮文件,標準庫提供了zipapp[7]模塊。它會為你生成__main__.py并添加一條組織行(shebang line),因此你甚至不需要指定 python,如果你不想在 UNIX 上指定它的話。如果你想移動一堆純 Python 代碼,這是一種不錯的方法。

不幸的是,僅當壓縮文件包含的所有代碼都是純 Python 時,才能這樣運行壓縮文件。執行壓縮文件對擴展模塊無效(這就是為什么 setuptools 有一個 zip_safe[8]標志的原因)。(譯注:擴展模塊 extension module,即 C/C++ 之類的非 Python 文件)

要加載擴展模塊,Python 必須調用 dlopen()[9]函數,它要傳入一個文件路徑,但當該文件路徑就包含在壓縮文件內時,這顯然不起作用。

我知道至少有一個人與 glibc 團隊交談過,關于支持將內存緩沖區傳入壓縮文件,以便 Python 可以將擴展模塊讀入內存,并將其傳給壓縮文件,但是如果內存為此服務,glibc 團隊并不同意。

但是,并非所有希望都喪失了!你可以使用諸如shiv[10]之類的項目,它會捆綁(bundle)你的代碼,然后提供一個__main__.py來處理壓縮文件的提取、緩存,然后為你執行代碼。盡管不如純 Python 解決方案理想,但它確實可行,并且在這種情況下算得上是優雅的。

 

責任編輯:華軒 來源: Python貓
相關推薦

2021-04-16 10:45:02

SQLJava函數

2021-03-07 16:41:06

URLSpring5

2020-11-04 09:52:16

Python讀取圖片開發

2024-07-26 10:47:10

2020-04-20 22:34:11

農業物聯網IOT

2020-08-20 07:38:51

Java字符串整形

2020-01-21 21:31:31

物聯網IOT物聯網應用

2020-07-14 08:17:26

代碼執行時間

2018-09-29 11:00:58

2018-05-30 13:58:02

Linux進程通信

2020-06-22 13:43:46

代碼編碼語言

2020-02-06 10:10:24

python程序代碼

2020-01-14 07:33:24

動物生活物聯網IOT

2020-05-25 10:32:05

云安全云計算

2024-01-17 13:56:00

Redis節點映射關系

2022-10-18 10:41:44

Flowable服務任務

2021-05-17 22:40:25

微信功能技巧

2018-07-03 14:00:44

Linux終端script命令

2023-08-26 07:09:36

2019-07-30 07:05:37

物聯網商業模式IOT
點贊
收藏

51CTO技術棧公眾號

夜久久久久久| 精品一区二区三区中文字幕| 久久久无码精品亚洲日韩按摩| 日本不卡视频在线播放| 在线观看日本中文字幕| 日日夜夜一区| 又紧又大又爽精品一区二区| 国产区二精品视| 怡红院av久久久久久久| 国产精品二区不卡| 亚洲а∨天堂久久精品喷水| 黄色片久久久久| 日本中文字幕电影在线免费观看| 久久超碰97人人做人人爱| 久久久久久久久久久成人| 亚洲欧美视频在线播放| 精品自拍视频| 精品久久久久久中文字幕| 亚洲欧美精品| 天天摸夜夜添狠狠添婷婷| 蜜臀av性久久久久蜜臀av麻豆| 欧美国产精品人人做人人爱| 国产精品免费无码| 成人影院中文字幕| 欧美日韩精品专区| 无码粉嫩虎白一线天在线观看| 成人午夜影视| 成人sese在线| 91亚洲永久免费精品| 欧美a视频在线观看| 99精品在线观看| 亚洲精品大尺度| 国产无遮挡猛进猛出免费软件| 日本蜜桃在线观看视频| 中文字幕字幕中文在线中不卡视频| 国内成+人亚洲| 精品国产九九九| 老司机精品视频在线| 17婷婷久久www| 久艹视频在线观看| 久久要要av| 亚洲精品自拍视频| 成人做爰www看视频软件| 色8久久久久| 欧美午夜精品久久久| 日韩精品视频一区二区在线观看| 男男gaygays亚洲| 亚洲天堂2014| 亚洲欧美久久234| www黄在线观看| 久久精品视频一区| 久久久久久99| 色一情一乱一区二区三区| 国产成人综合在线观看| 91色中文字幕| 国产视频在线观看视频| 久久99精品国产麻豆婷婷| 国产精品96久久久久久又黄又硬| 亚洲熟女综合色一区二区三区| 亚洲无毛电影| 国模私拍视频一区| 久久久久久久国产精品毛片| 欧美va天堂| 欧美大尺度激情区在线播放| 少妇高潮惨叫久久久久| 久久视频在线| 久久久极品av| 欧美激情一区二区视频| 欧美午夜视频| 久久久久久久久久久免费| 久久综合色综合| 亚洲小说区图片区| 午夜精品久久久久久久久久久久久| 国产一级做a爱免费视频| 亚洲黑丝一区二区| 国产va免费精品高清在线| 台湾佬中文在线| 日韩**一区毛片| 国产欧美日韩91| 国产麻豆免费视频| 国产成人精品午夜视频免费| 国产精品yjizz| 特黄视频在线观看| 久久精品欧美日韩| 午夜一区二区三区| 成人在线直播| 午夜视频在线观看一区二区三区 | 一区二区三区韩国| 国外成人福利视频| 欧美成人激情免费网| 91玉足脚交白嫩脚丫| 国产探花在线精品一区二区| 日韩综合视频在线观看| 久久午夜无码鲁丝片午夜精品| 国产视频欧美| 国产区精品视频| 蜜臀av免费在线观看| 91免费视频大全| 亚洲一区二区在| 欧美人与牲禽动交com | 久久综合色88| 国产精品久久久久久久妇| 日韩成人一区二区| 官网99热精品| av色图一区| 午夜欧美视频在线观看| 亚洲 激情 在线| 精品国产午夜肉伦伦影院| 在线视频中文亚洲| 久久精品这里有| 开心九九激情九九欧美日韩精美视频电影 | 在线免费观看亚洲视频| 国产日韩欧美三级| 91视频国产高清| 韩国三级av在线免费观看| 亚洲精品免费一二三区| 欧美在线观看视频网站| 成人爽a毛片| 日韩在线不卡视频| 黄色免费av网站| 国产成人精品亚洲777人妖| 色姑娘综合网| 婷婷电影在线观看| 日韩一区二区电影在线| 中文字幕第69页| 男人的天堂亚洲| 国产精品美女久久久久av福利| 日本高清一区| 日本免费不卡视频| 亚洲特黄一级片| 一区二区三区视频在线观看免费| 精品素人av| 欧美激情亚洲另类| 国产熟女一区二区丰满| 中文一区二区在线观看| aⅴ在线免费观看| 九九热hot精品视频在线播放| 精品国产一区二区三区久久狼黑人 | 777精品视频| 99精品久久久久久中文字幕| 亚洲国产精品99久久久久久久久| 97国产精东麻豆人妻电影| 91精品国产自产精品男人的天堂| 日韩在线观看免费全| 国产一级精品毛片| 国产午夜精品一区二区三区四区| www.99热这里只有精品| 欧美电影在线观看完整版| 欧美极品第一页| www.国产麻豆| 亚洲五月六月丁香激情| 国产大尺度视频| 国产精品www994| 动漫精品视频| 黄页在线观看免费| 欧美成人高清电影在线| 高h视频免费观看| 国产精品一区二区三区网站| 欧美性受黑人性爽| 91久久精品无嫩草影院| 九色成人免费视频| 欧美一级特黄aaaaaa大片在线观看| 亚洲精品中文字幕在线观看| 成人一区二区三区仙踪林| 欧美1区免费| 国产精品xxx在线观看www| 成人bbav| 亚洲精品一区二区久| 99re国产在线| 中文字幕一区二区三区四区| 五月六月丁香婷婷| 欧美午夜不卡影院在线观看完整版免费| 99热国产免费| 国产三级电影在线播放| 亚洲欧美日韩图片| 一区二区三区黄| 亚洲视频一二三区| 又色又爽又黄18网站| 亚洲黄色影片| 日本黑人久久| 996久久国产精品线观看| 久久91精品国产| 天堂av网在线| 欧美揉bbbbb揉bbbbb| 男人操女人的视频网站| 波多野结衣中文字幕一区二区三区| 欧美 日韩 激情| 精品久久91| 亚洲xxxx视频| 亚洲插插视频| 久久久精品日本| 免费观看国产精品| 91成人国产精品| 日韩影院一区二区| 91在线码无精品| 一道本视频在线观看| 欧美日韩午夜| 日本一区精品| 亚洲成人影音| 日韩美女主播视频| 亚洲制服国产| 一本色道久久88亚洲综合88| 99热这里只有精品66| 黑人欧美xxxx| 男人操女人的视频网站| 久久嫩草精品久久久久| 超碰91在线播放| 久久蜜桃精品| 日本a级片在线观看| 亚洲+变态+欧美+另类+精品| 成人久久久久爱| 亚洲精品成人图区| 精品自在线视频| 91精彩视频在线播放| 亚洲电影成人av99爱色| 国产又粗又猛又爽| 91国偷自产一区二区开放时间| 91精品国产高清一区二区三蜜臀| 久久丝袜美腿综合| 香蕉在线观看视频| 精品一区二区av| 国产精品免费成人| 9国产精品视频| 9191国产视频| 我不卡影院28| 日韩在线观看电影完整版高清免费| 动漫av一区| 亚洲综合大片69999| 成人免费视频观看| 日韩免费观看高清| av电影在线地址| 欧美成人免费网| 日本中文字幕在线播放| 一区二区三区黄色| 国产中文字幕在线观看| 亚洲精品国产综合区久久久久久久| 99久久婷婷国产一区二区三区| 欧美曰成人黄网| 日本少妇bbwbbw精品| 日韩一区在线免费观看| 中字幕一区二区三区乱码| 91丨porny丨在线| 久久久久国产精品区片区无码| 国产91丝袜在线播放九色| 中文字幕一区二区三区四| 久久国产精品区| 亚洲一区二区三区四区五区xx| 美女诱惑黄网站一区| 国内性生活视频| 国产日韩欧美高清免费| 中国丰满人妻videoshd| 一本色道久久综合亚洲精品不卡| 免费拍拍拍网站| 亚洲国产高清一区二区三区| 国产www免费| 国产精品大片| 精品无码一区二区三区爱欲| 亚洲香蕉网站| www.99热这里只有精品| 国产模特精品视频久久久久| 99久久久无码国产精品6| 久久精品女人| www亚洲成人| 精一区二区三区| 亚洲精品mv在线观看| 国产精品18久久久久久久久久久久| 亚洲午夜精品在线观看| 成人免费高清视频在线观看| 欧美肉大捧一进一出免费视频| 91亚洲国产成人精品一区二区三 | 国产精品美女一区| 日韩亚洲欧美综合| 日本免费一区视频| 亚洲欧美中文另类| 91精品国产91久久久久游泳池 | 蜜桃视频第一区免费观看| 五月天开心婷婷| 成人午夜av在线| 国产熟妇搡bbbb搡bbbb| 国产精品欧美久久久久一区二区| 免费看特级毛片| 亚洲成人综合视频| 波多野结衣人妻| 欧美一级久久久| 天堂av电影在线观看| 综合久久五月天| 欧美videossex| 国产91在线高潮白浆在线观看| 国产人妖一区| 国产精品视频500部| 国产精选一区| 欧美一级中文字幕| 亚洲一区自拍| 日韩精品aaa| 99国产精品一区| 小嫩苞一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了| 国产成人愉拍精品久久| 欧美三级日韩在线| 日韩一级片免费在线观看| 亚洲人成在线观看网站高清| 成人看av片| 日本成人在线视频网址| 日韩一区网站| 天天爽天天狠久久久| 精品999日本| 欧美美女一级片| 91丨porny丨中文| 69xx绿帽三人行| 欧美特级限制片免费在线观看| 嫩草影院一区二区| 色偷偷偷综合中文字幕;dd| 大桥未久在线播放| 91精品免费久久久久久久久| 人妖一区二区三区| 成人免费看片'免费看| 蜜臀av性久久久久蜜臀aⅴ| 国产麻豆天美果冻无码视频| 一区二区三区免费在线观看| 中文字幕久久网| 亚洲男人av电影| av资源一区| 亚洲最大福利视频网| 日韩在线综合| 国产成人手机视频| av亚洲精华国产精华精| 欧美xxxx黑人xyx性爽| 欧美久久一二区| 第一视频专区在线| 日本一欧美一欧美一亚洲视频| 精品三级av在线导航| 麻豆一区二区三区在线观看| 久久精品999| 九九九视频在线观看| 色婷婷国产精品| 日韩午夜影院| 2019av中文字幕| 国产美女撒尿一区二区| 久久亚洲国产成人精品无码区| 激情五月婷婷综合| 亚洲 欧美 国产 另类| 欧美日韩一区二区三区高清| 黄色网址在线播放| 国产成人精品综合久久久| 欧美日韩看看2015永久免费| 丰满少妇久久久| 成年人国产精品| 日本中文字幕在线免费观看| 亚洲第一精品福利| 国产v日韩v欧美v| 久久久精品动漫| 免费亚洲一区| 黄色aaa视频| 欧美影视一区在线| 69视频在线| 国产日韩欧美黄色| 亚洲天天综合| 337p日本欧洲亚洲大胆张筱雨| 一区二区三区视频在线观看 | 日韩精品福利在线| 性爽视频在线| 视频在线99re| 另类小说欧美激情| 99鲁鲁精品一区二区三区| 日韩亚洲欧美一区二区三区| 丝袜在线视频| 国内精品久久国产| 日韩中文字幕1| www.xx日本| 日韩免费一区二区| 狠狠操一区二区三区| 欧美在线激情| 久久99精品国产91久久来源| 欧美人与禽zozzo禽性配| 亚洲电影av在线| 成人啊v在线| 超碰97免费观看| www.亚洲国产| 国产天堂第一区| 欧美精品免费在线| 日韩电影不卡一区| 亚洲 欧美 另类人妖| 一区二区三区精品在线| 欧美 日韩 综合| 日本精品免费一区二区三区| 日产精品一区二区| 国产调教打屁股xxxx网站| 疯狂蹂躏欧美一区二区精品| 在线中文资源天堂| 国产成人成网站在线播放青青| 国产视频一区在线观看一区免费| 国产免费嫩草影院| 欧美精品一区视频| 精品久久99| 18岁网站在线观看| 亚洲欧美偷拍卡通变态| 三级在线视频| 亚洲一区二区三区四区视频| 蜜乳av另类精品一区二区| 人妻久久一区二区|