windows系統下,首行# !/usr/bin/env python是不是沒有用?

如題

實驗了一下,發現沒用,還是只能用python+文件名運行。

或者是我打開方式不對?我是在powershell中進入文件所在文件夾然後直接輸入文件名的,提示加.後,就是直接打開那個文件,不是在powershell中運行。


你可以在git bash裡面運行。power shell是不行的,如果在windows下寫python最好還是裝一個git bash,比較方便。


# !/usr/bin/env python

這個是用於*nix環境下的,它是用於指定執行的程序,不適用於Windows系統。直接在dos/powershell,./xx.py,是會用文件關聯的程序打開,如果你關聯的是記事本就是記事本打開,如果是python就是python來執行(當然程序執行很快可能窗口一閃而過),關聯程序可以右鍵屬性來設置。


是。


用cygwin里的shell就可以了,真的需要的話。

或者用這裡的方法 unix - Use shebang/hashbang in Windows Command Prompt。

google搜「windows shebang」有真相。


這個有個專業辭彙,叫 Shebang (Unix)

還有類似的:

#! /usr/bin/sh

#! /usr/bin/ruby


沒用的,類unix系統才是根據文件頭決定腳本運行方式。windows是根據文件後綴決定打開方式的。

你應該設定.py後綴的文件,用python.exe打開。

如果要帶參數,


有一定用途。

在 windows 中關聯 .py 文件到 C:Windowspy.exe,同理 .pyw 文件到 pyw.exe

然後在文件第一行添加 #!/usr/bin/python3 或 #!/usr/bin/python2,雙擊運行(或cmd直接aaa.py)會自動選擇對應的版本。


python加進環境變數就可以這樣用了


這個歸咎於操作系統


兩個系統設計的不同,這行在win下是無用的。

就像我是歌手胡彥斌看的是二胡,李健看的是白雪公主。

建議你看下*nux的入門書,很基本的一個問題,跟兩個平台的【.***】類似

這句話的意思是,讓這個目錄下的程序執行這段代碼,但是win下的路徑不和*nix路徑實現方式相同,所以基本上這行代碼在win下是廢的。


mingw的bash可以用,cygwin的shell也可以。

所以歸根結底是shell的功能,與操作系統沒有關係。


推薦閱讀:

C 語言和 Python,該從哪個入門編程?
那種編程語言比較適合新手?
python多線程下載,進度條顯示問題如何解決?
學習tornado/django/flask等python框架需要哪方面知識?
Python web 開發一定要用框架嗎?有沒其它方法,類似 PHP 的語句?

TAG:Python | Python入門 |