关联: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 。
补充知识: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文件的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】
- 谭咏麟.2022-倾·听【环球】【WAV+CUE】
- 4complete《丛生》[320K/MP3][85.26MB]
- 4complete《丛生》[FLAC/分轨][218.01MB]
- 羽泉《给未来的你&天黑天亮》[WAV+CUE][968M]
- 庄心妍《我也许在等候》[低速原抓WAV+CUE]
- 王雅洁《小调歌后2》[原抓WAV+CUE]