天天看點

tensorflow 修複python無法直接運作py檔案問題

關聯:windows下無字首直接運作.py檔案

關聯:便攜版python無法直接運作python腳本的問題

症狀:直接運作py腳本發現無法傳遞參數。

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

指定py檔案使用python.exe打開時,直接運作 sqlmap.py - u xxx  發現無法傳遞參數。

原因:系統資料庫鍵值中缺少傳遞參數

指定便攜版python打開py腳本時,系統資料庫中打開方式鍵值中少了傳遞參數的功能

本需要 C:/python路徑/python.exe “%1” %*  ,其中"%1" %* 起傳遞參數的作用。

但是系統資料庫中隻加入了  “C:/python路徑\python.exe” “%1”  ,是以,無法直接運作py腳本

示例:能夠正常使用的系統資料庫

HKEY_CLASSES_ROOT.py

HKEY_CLASSES_ROOT.py_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_CLASSES_ROOT.py_auto_file\shell]

[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 xxx】 肯定是調用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 。

其他參考文章:

Windows 制作免安裝的python環境

https://blog.csdn.net/lql971203/article/details/102930431

https://blog.csdn.net/lql971203/article/details/102931388

Windows 制作免安裝的JAVA環境

https://blog.csdn.net/lql971203/article/details/102486063

Windows免安裝java、python環境分享

https://blog.csdn.net/lql971203/article/details/102930143

免安裝java環境不能輕按兩下運作jar檔案的優化解決辦法

https://blog.csdn.net/lql971203/article/details/102932453