解決python便攜版無法直接執行py檔案的問題

2022-10-04 13:45:30 字數 3275 閱讀 7547

關聯:windows下無字首程式設計客棧直接執行.py檔案

關聯:便攜版python無法直接執行python指令碼的問題

症狀:直接執行py指令碼發現無法傳遞引數。

在python便攜版可正常使用的情況下,python sqlmap.py - u *** 可正常使用

指定py檔案使用python.exe開啟時,直接執行 sqlmap.py - u *** 發現無法傳遞引數。

原因:登錄檔鍵值中缺少傳遞引數

指定便攜版python開啟py指令碼時,登錄檔中開啟方式鍵值中少了傳遞引數的功能

本需要 c:/python路徑/python.exe 「%1」 %* ,其中"%1" %* 起傳遞引數的作用。

但是登錄檔中只加入了 「c:/python路徑\python.exe」 「%1」 ,因此,無法直接執行py指令碼

示例:能夠正常使用的登錄檔

hkey_classes_root.py

hkey_classes_root.www.cppcns.compy_auto_file\shell\open\command

hkey_classes_root\applications\python.exe\shell\open\command

修復第一步:先指定py檔案的開啟方式。

右擊py檔案——>找到python.exe——>勾選始終使用此應用開啟.py檔案。

修復登錄檔

新建python.reg 內容如下:【注意:其中c:\program_base\python37\python.exe是我的python路徑,登錄檔檔案中需要斜槓\轉義特殊字元】

-----------------我是分割線----------------------

windows registry editor version 5.00

[hkey_classes_root.py]

@=".py_auto_file"

[hkey_classes_root.py_auto_file]

[hkey_cla

[hkey_classes_root.py_auto_file\shell\open]

[hkey_classes_root.py_auto_file\shell\open\command]

@="「c:\program_base\python37\python.exe」 「%1」 %*"

[hkey_classes_root\applications\python.exe]

[hkey_classes_root\applications\python.exe\shell]

[hkey_classes_root\applications\python.exe\shell\open]

[hkey_classes_root\applications\python.exe\shell\open\command]

@="「c:\program_base\python37\python.exe」 「%1」 %*"

-----------------我是分割線----------------------

修復結果:ok

擴充套件:python2-3指令碼共存問題

問題:這裡有乙個py指令碼的呼叫問題,因為目前python2還有一點需求,選擇開啟方式是選python2還是選python3?預設同時肯定只有乙個生效的

例如:如果選的預設開啟方式是python3的exe, 那麼【sqlmap.py – u ***】 肯定是呼叫python3執行py指令碼

解決思路:

把python2的指令碼改成.py2 ,然後按上述操作改改登錄檔

詳細步驟:

1、先指定.py2檔案的開啟方式。2、匯入登錄檔檔案python2.reg

新建python2.reg 內容如下:

【注意:其中c:\program_base\python27\python.exe是我的python2路徑,登錄檔檔案中需要斜槓\轉義特殊字元】

-----------------我是分割線----------------------

windows registry editor version 5.00

[hkey_classes_root.py2]

@=".py2_auto_file"

[hkey_classes_root.py2_auto_file]

[hkey_classes_root.py2_auto_file\shell]

[hkey_classes_root.py2_auto_file\shell\open]

[hkey_classes_root.py2_auto_file\shell\open\command]

@="「c:\program_base\python27\python.exe」 「%1」 %*"

-----------------我是分割線----------------------

#缺少的部分屬於重複部分可以忽略,

實際刪除[hkey_classes_root\applications\python2.exe]鍵值對,也能夠正常執行python sqlmap.py -h 和sqlmap.py -h 。

補充知識:python學習之安裝目錄下的python.exe與pythonw.exe檔案的區別

python.exe在執行程式的時候,會彈出乙個黑色的控制台視窗(也叫命令列視窗、dos/cmd視窗);

pythonw.exe是無視窗的python可執行程式,意思是在執行程式的時候,沒有視窗彈出,**在後台執行。

.py和**.pyw**檔案的區別也**於python.exe和pythonw.exe的區別:

安裝 windows 版 python 時,擴充套件名為 .py 的檔案被預設為用 python.exe 執行的檔案,而 .pyw 檔案則被預設為用 pythonw.exe 執行。

.pyw 格式是被設計用來執行開發的純圖形介面程式的,純圖形介面程式的使用者不需要看到控制台視窗。在開發純圖形介面程式的時候,可以暫時把 .pyw 改成 .py ,執行時能調出控制台視窗,方便看到所有錯誤資訊。

至於.pyc檔案,是python直譯器執行程式的過程中產生的位元組碼檔案(也就是中間生成的檔案)。

這裡還要解釋乙個問題,如果.py檔案直接用python.exe開啟,檔案被執行完成之後,視窗會立即關閉,如果想讓視窗停留,給大家提供兩個方法:

①可以在程式中import time模組,加入超長睡眠語句,如time.sleep(1800),如果你不手動關閉視窗,視窗將會停留30min;

②可以呼叫sys和os模組,使用命令列語句pause(個人覺得有些牛刀殺雞的感覺)。

本文標題: 解決python便攜版無法直接執行py檔案的問題

本文位址:

Linux開機後無法直接root登陸解決方法

執行 vi etc lightdm lightdm.conf.增加 greeter show manual login true allow guest false 修改完的整個配置檔案是 seatdefaults greeter session unity greeter user session...

Linux開機後無法直接root登陸解決方法

執行 vi etc lightdm lightdm.conf.增加 greeter show manual login true allow guest false 修改完的整個配置檔案是 seatdefaults greeter session unity greeter user session...

Ghost版XP中無法安裝IIS的解決方法

情況二 一些精簡的g版xp裡面的 新增 刪除 元件對話方塊裡沒有iis的選項,使得我們不能 直接安裝。這是因為這些精簡的xp為了使安裝包最小而去掉了一些不常用的元件。對 於此類問題我們可以通過下面的方法解決 1 開啟c windows inf sysoc.inf 此檔案為隱藏檔案 開啟後,看是否有 ...