解决python便携版无法直接运行py文件的问题

 更新时间:2020年09月01日 14:41:18   作者:KISSLOO  
这篇文章主要介绍了解决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 。

补充知识: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文件的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • OpenCV哈里斯(Harris)角点检测的实现

    OpenCV哈里斯(Harris)角点检测的实现

    这篇文章主要介绍了OpenCV哈里斯 (Harris)角点检测,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Django ORM多对多查询方法(自定义第三张表&ManyToManyField)

    Django ORM多对多查询方法(自定义第三张表&ManyToManyField)

    今天小编就为大家分享一篇Django ORM多对多查询方法(自定义第三张表&ManyToManyField),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 新建文件时Pycharm中自动设置头部模板信息的方法

    新建文件时Pycharm中自动设置头部模板信息的方法

    这篇文章主要介绍了新建文件时Pycharm中自动设置头部模板信息的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • python实现单机五子棋对战游戏

    python实现单机五子棋对战游戏

    这篇文章主要为大家详细介绍了python实现单机五子棋对战游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • python函数实例万花筒实现过程

    python函数实例万花筒实现过程

    这篇文章主要为大家介绍了python函数实例万花筒实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • django 实现编写控制登录和访问权限控制的中间件方法

    django 实现编写控制登录和访问权限控制的中间件方法

    今天小编就为大家分享一篇django 实现编写控制登录和访问权限控制的中间件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python生成个性签名图片获取GUI过程解析

    Python生成个性签名图片获取GUI过程解析

    这篇文章主要介绍了Python生成个性签名图片获取GUI过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • python实现员工管理系统

    python实现员工管理系统

    这篇文章主要介绍了python实现员工管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 理解Python中的With语句

    理解Python中的With语句

    这篇文章主要介绍了理解Python中的With语句,本文讲解了With语句是什么、with如何工作等内容,并给出了代码实例,需要的朋友可以参考下
    2015-02-02
  • Python连接和操作Elasticsearch的流程步骤

    Python连接和操作Elasticsearch的流程步骤

    本文将详细介绍如何使用 Python 连接和操作 Elasticsearch,包括安装客户端、基本的操作(如创建索引、添加数据、查询数据等)以及高级应用(如聚合查询、索引映射等),需要的朋友可以参考下
    2025-04-04

最新评论