解决python便携版⽆法直接运⾏py⽂件的问题关联:windows下⽆前缀直接运⾏.py⽂件
关联:便携版python⽆法直接运⾏python脚本的问题
症状:直接运⾏py脚本发现⽆法传递参数。
在python便携版可正常使⽤的情况下,python sqlmap.py - u xxx 可正常使⽤
指定py⽂件使⽤打开时,直接运⾏ sqlmap.py - u xxx 发现⽆法传递参数。
原因:注册表键值中缺少传递参数
指定便携版python打开py脚本时,注册表中打开⽅式键值中少了传递参数的功能
本需要 C:/python路径/ “%1” %* ,其中"%1" %* 起传递参数的作⽤。
但是注册表中只加⼊了 “C:/python路径\” “%1” ,因此,⽆法直接运⾏py脚本
⽰例:能够正常使⽤的注册表
HKEY_CLASSES_ROOT.py
HKEY_CLASSES_ROOT.py_auto_file\shell\open\command
HKEY_CLASSES_ROOT\\shell\open\command
修复
第⼀步:先指定py⽂件的打开⽅式。
右击py⽂件——>到——>勾选始终使⽤此应⽤打开.py⽂件。
修复注册表
新建 内容如下:【注意:其中C:\Program_Base\是我的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\” “%1” %*"
[HKEY_CLASSES_ROOT\]
[HKEY_CLASSES_ROOT\\shell]
[HKEY_CLASSES_ROOT\\shell\open]
[HKEY_CLASSES_ROOT\\shell\open\command]
@="“C:\Program_Base\” “%1” %*"
python怎么读取py文件-----------------我是分割线----------------------
修复结果:OK
扩展:python2-3脚本共存问题
问题:
这⾥有⼀个py脚本的调⽤问题,因为⽬前python2还有⼀点需求,选择打开⽅式是选python2还是选python3?默认同时肯定只有⼀个⽣效的
例如:
如果选的默认打开⽅式是python3的exe,那么【sqlmap.py – u xxx】肯定是调⽤python3执⾏py脚本
解决思路:
把python2的脚本改成.py2 ,然后按上述操作改改注册表
详细步骤:
1、先指定.py2⽂件的打开⽅式。
2、导⼊注册表⽂件
新建 内容如下:
【注意:其中C:\Program_Base\是我的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\” “%1” %*"
-----------------我是分割线----------------------
#缺少的部分属于重复部分可以忽略,
实际删除[HKEY_CLASSES_ROOT\]键值对,也能够正常运⾏python sqlmap.py -h 和sqlmap.py -h 。
补充知识:Python学习之安装⽬录下的与⽂件的区别
<在运⾏程序的时候,会弹出⼀个⿊⾊的控制台窗⼝(也叫命令⾏窗⼝、DOS/CMD窗⼝);
<是⽆窗⼝的Python可执⾏程序,意思是在运⾏程序的时候,没有窗⼝弹出,代码在后台执⾏。
.py和**.pyw**⽂件的区别也来源于和的区别:
安装 Windows 版 Python 时,扩展名为 .py 的⽂件被默认为⽤ 运⾏的⽂件,⽽ .pyw ⽂件则被默认为⽤ 运⾏。
.pyw 格式是被设计⽤来运⾏开发的纯图形界⾯程序的,纯图形界⾯程序的⽤户不需要看到控制台窗⼝。在开发纯图形界⾯程序的时候,可以暂时把 .pyw 改成 .py ,运⾏时能调出控制台窗⼝,⽅便看到所有错误信息。
⾄于.pyc⽂件,是Python解释器运⾏程序的过程中产⽣的字节码⽂件(也就是中间⽣成的⽂件)。
这⾥还要解释⼀个问题,如果.py⽂件直接⽤打开,⽂件被执⾏完成之后,视窗会⽴即关闭,如果想让视窗停留,给⼤家提供两个⽅法:
①可以在程序中import time模块,加⼊超长睡眠语句,如time.sleep(1800),如果你不⼿动关闭视窗,视窗将会停留30min;
②可以调⽤sys和os模块,使⽤命令⾏语句pause(个⼈觉得有些⽜⼑杀鸡的感觉)。
以上这篇解决python便携版⽆法直接运⾏py⽂件的问题就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论