成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

講講 Python Launcher 是什么鬼東西?

開發 后端
你可能在他處見到過這鬼東西,when you install or uninstall python, and so on。那么你肯定與我一樣對這個鬼東西起了一絲興趣趣!

 你可能在他處見到過這鬼東西,when you install or uninstall python, and so on。那么你肯定與我一樣對這個鬼東西起了一絲興趣趣!

1. 問題所在

由于Python2.x版本的腳本和Python3.x版本的腳本在語法上會有不兼容的情況。那么,必須使用不同的策略來允許【py】腳本使用基于腳本指定的Python解釋器版本來選擇合適的Python解釋器!這句話相當的拗口!說人話,就是我有個test腳本需要Python2.x版本的解釋器來執行。

  1. python test.py 

你如何確保執行該腳本的解釋器版本就是我需要的解釋器!也就是,如何確定你就是我需要的那個姑娘!上面的“python”命令,是系統在PATH中找到的。而PATH中Python變量,有可能被我們手動修改,拋開這個不談,一般的,‘python’命令是調用Python3.x版本的解釋器。但這不完全可靠,因為當系統在PATH中找‘python’命令時,如果Python2.x版本的在Python3.x的前面,那么, Python的默認解釋器將變為2.x版本,因為系統找到一個就返回了(系統在Python2.x的安裝目錄中找到了python.exe)。想想你的Python解釋器的安裝目錄內。不管是哪個版本都有這些:

針對這個弊端,又有了另一個約定:

•python2將引用Python 2.x的某些版本•python3將引用Python 3.x的某些版本

要了解更多的關于Python在‘python’命令方面的其他的約定,請參考PEP 394

在 Linux 中

在Linux中(基于Unix的系統中),通過軟連接的方式來綁定指定的Python解釋器。比如:

這些軟連將不同的python命令指向一個實際位置的Python解釋器的啟動目錄。而這些在哪用到呢,被【Shebang】用到了,也就是俗稱的文件頭(這里只聊shebang關于Python文件頭的部分)。通過文件頭系統就去軟連中找到對應的那個‘python’命令,而該命令有綁定到一個具體的Python解釋器。

  1. #!/usr/bin/python2 

在 Windows 中

上述問題也存在與Windows系統中,那么我們也希望在Windows中和Unix中同樣運行【Shebang】的能力,并且——沒有什么是又好使又不需要發明新的語法或者約定來描述更讓人愉快的事情了!經過后來的完善,在PEP 397中正式出現并伴隨Python3.3版本發布。它叫【Python Launcher】

2. 解決問題

Python launcher是用于Windows中的一個實用程序,可幫助我們定位和執行不同版本的Python解釋器。它允許腳本或者命令行指示特定的Python版本的首選項,并將定位并執行該版本。mmp,還是這么拗口!說人話就是它很智能的區分開是你想要手動指定解釋版本執行py腳本,還是想使用腳本文件指定的解釋器。你手動的選擇Python解釋器,這是調用了你在【PATH】中的Python變量。舉個例子。你在Windows下的cmd中,使用Python3.7版本的解釋器,執行一個文件:

  1. $ python3.7 test.py 

這么執行發生了什么?Windows會在PATH中尋找python3.7這個解釋器。找到并執行test.py文件。而這個test.py(你從未打開過該文件)文件呢,其實它需要python2.7版本的解釋器來執行。這樣是不是就有問題了。我們用Python launcher來解決這個問題,這玩意兒它會正確的選擇最合適的Python版本。

如何安裝 Python launcher

一般的,從3.3版本開始,Python launcher會伴隨解釋器的安裝而可選安裝,在安裝步驟的可選項中可勾選。如本博客的第一個圖所示。它會被放在系統的PATH中(Python3.6版本開始是這樣的,之前版本稍有變動,參見Python3.3版本新功能),如果你不手動添加的話。

另一種方式是單獨安裝。如本博客的第一個圖所示,你可以單獨勾選該項使之單獨安裝。在多個版本Python中,Python launcher只需安裝一次,并且兼容所有的Python版本。所以,如果在安裝3.6版本是,選擇Python launcher選項,那么如果你在安裝3.7版本,該項則就無法選中,因為已經安裝了。

Python launcher有兩個版本,一個是控制臺程序,另一個是‘windows’(即GUI)程序。這兩個程序對應我們Python安裝目錄中的‘python.exe’和‘pythonw.exe’這兩個可執行文件。

控制臺程序被命名為‘py.exe’,而windows程序則命名為‘pyw.exe’,并且pyw.exe將定位并執行pythonw.exe。 

  1. M:\>where py  
  2. C:\Windows\py.exe  
  3. M:\>where pyw.exe  
  4. C:\Windows\pyw.exe 

這里僅用控制臺程序舉例。

如何使用 Python launcher?

如果你安裝Python launcher,那么你可以在任意的目錄打開cmd測試。

默認的,Python launcher打開了你最新版本的解釋器。可以正常的使用和退出。而不是你最近安裝的某個版本的解釋器。

如果你的系統環境中有多個版本的Python解釋器,那么,要想啟動,則可以這樣:

當然,Python launcher可以幫我們解決某些問題。比如現在有個test.py文件,我們用Python launcher來啟動。 

  1. #! python2.7  
  2. import sys  
  3. print(sys.version)  
  4. # --------- 以上為文件內容, 以下為執行結果 --------------  
  5. M:\>py test.py  
  6. 2.7.14(v2.7.14:84471935ed, Sep162017, 20:19:30) [MSC v.150032 bit (Intel)] 

可以看到,Python launcher根據文件頭自動幫我們調用了指定版本的解釋器來執行該文件。我們修改下文件頭再來測試。 

  1. #! python3  
  2. import sys  
  3. print(sys.version)  
  4. # --------- 以上為文件內容, 以下為執行結果 --------------  
  5. M:\>py test.py  
  6. 3.7.0(v3.7.0:1bf9cc5093, Jun272018, 04:06:47) [MSC v.191432 bit (Intel)] 

這樣,Python launcher幫我們找到我們想要的那個姑娘。再來看個沒有文件頭的。 

  1. import sys  
  2. print(sys.version)  
  3. # --------- 以上為文件內容, 以下為執行結果 --------------  
  4. M:\>py test.py  
  5. 3.7.0(v3.7.0:1bf9cc5093, Jun272018, 04:06:47) [MSC v.191432 bit (Intel)] 

結果,Python launcher默認使用最新版本的解釋器來執行。我們也可以繞過文件頭,使用我們指定版本的Python解釋器。 

  1. #! python2  
  2. import sys 
  3. print(sys.version)  
  4. # --------- 以上為文件內容, 以下為執行結果 --------------  
  5. M:\>py -3 test.py  
  6. 3.7.0(v3.7.0:1bf9cc5093, Jun272018, 04:06:47) [MSC v.191432 bit (Intel)] 
  7. M:\>py -3.5 test.py  
  8. 3.5.4(v3.5.4:3f56838, Aug82017, 02:07:06) [MSC v.190032 bit (Intel)] 

如上所示,我們還可以指定版本來執行腳本。

Python社區從多方面考慮下才有的Python launcher,方便我們在windows下使用Python。如果現在的我們用不到它,只需大概知道是干嘛就行,不求甚解。

以上為我個人對Python launcher的理解。如有錯誤,還望斧正。 

 

責任編輯:龐桂玉 來源: Python編程
相關推薦

2015-11-12 10:03:34

前端H5web

2021-11-10 12:13:02

HostonlyCookie瀏覽器

2017-04-03 15:35:13

知識體系架構

2020-09-27 06:53:57

MavenCDNwrapper

2015-03-17 10:13:52

HTML5什么鬼

2019-10-30 10:13:15

區塊鏈技術支付寶

2020-11-04 13:01:38

FastThreadLocalJDK

2022-01-12 12:35:36

Linuxworkqueue工作隊列

2015-09-29 09:47:14

2019-01-07 12:40:19

2015-09-22 09:25:16

RTORPO災備技術

2021-01-07 05:22:47

MySQL字段存儲

2022-09-07 08:41:57

SpringIstio分布式

2015-07-16 10:49:31

虛擬化容器技術

2019-01-17 14:35:01

2018-01-16 08:47:23

2019-04-17 09:09:42

2016-10-21 09:58:19

WindowsKMSOEM系統

2021-07-13 09:08:19

磁盤陣列系統

2022-03-15 10:38:14

數字孿生遠程醫療數字化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费观看日韩精品 | 亚洲三区视频 | 欧美亚洲综合久久 | 欧洲一级毛片 | 国产精品美女一区二区三区 | 永久免费视频 | 国产一区二区三区在线 | 亚洲免费在线观看 | 中文字幕免费在线 | 欧美中文字幕 | 久久夜视频 | 欧美日韩国产一区二区三区不卡 | 99热激情| 欧美综合网 | 91资源在线| www网站在线观看 | 国产一区二区视频免费在线观看 | 免费观看www7722午夜电影 | 日韩视频中文字幕 | 欧美日韩一区在线 | 亚洲精品福利在线 | 国产96在线 | 国产精品一区在线 | 午夜欧美a级理论片915影院 | 99亚洲精品 | 国产成人精品网站 | 日韩视频三区 | 99国内精品久久久久久久 | 国产精品一区二区av | 在线看中文字幕 | 国产精品久久久av | 中文字幕在线一区 | 欧美激情精品久久久久 | 久久中文字幕电影 | 欧美久久久网站 | 久久久精品网站 | 香蕉视频91| 8x国产精品视频一区二区 | 一区二区三区四区在线视频 | av资源中文在线 | 欧美一区二区大片 |