解决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文件的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决python文件双击运行秒退的问题

    今天帮同事写了一个处理Excel表格的python脚本,在我的电脑上双击正常运行,奈何在同事的电脑上总是秒退,研究了半天终于解决,写出来跟大家分享一下. py文件秒退原因分析: 首先确保电脑里装了python解释器,如果没装是不能运行.py结尾的文件的.附上安装方法.有python解释器以后,需要设置.py文件的打开方式为python.exe.(路径一般是C:\Users\你的用户名\AppData\Local\Programs\Python\Python.exe) 接着考虑代码自身业务,如果你

  • 解决python xx.py文件点击完之后一闪而过的问题

    1.问题复现: 有时候我们去点击.py文件 文件里明明有打印信息,却一闪而过,没有任何显示 比如以下内容 #!/usr/local/bin/python import sys print(sys.platform) print(2 ** 100) x = 'Spam' print(x * 8) print 'hello world' 2.具体原因: 其实程序是运行了,运行完之后就把显示的窗口关掉了 除非你机器运行很卡,不然正常情况下你是看不见任何输出 3.解决方法: 在程序末尾加"input()

  • python 解决pycharm运行py文件只有unittest选项的问题

    有时候在编完脚本开始运行时,发现某个py脚本右键运行的选项不是run,二是run in unittest,试过很多方法都不能很好的去除,主要是因为脚本中含有test字符串,一种解决方法是将脚本中所有的函数和类的test字符串改为其他的. 但是此方法比较麻烦,需要改函数和类的名字,有一种根本的解决方法: File-> Settings -> Tools -> Python Integrated Tools -> Default test runner 将Unittests改为py.t

  • 解决python中import文件夹下面py文件报错问题

    如下所示: 在需要导入的那个文件夹里面新建一个 __init__.py文件,哪怕这个文件是空的文件也可以. 补充知识:python中import其他目录下的文件出现问题的解决方法 在使用python进行编程的时候,import其他文件路径下的.py文件时报错 Traceback (most recent call last): File "download_and_convert_data.py", line 44, in <module> from .datasets i

  • 解决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路径错误,运行.py文件,找不到路径的问题

    下面就来说说解决方案吧~ import os import sys curPath = os.path.abspath(os.path.dirname(__file__)) rootpath=str(curPath) syspath=sys.path depth = rootpath.count("\\") - 1 sys.path=[] sys.path.append(rootpath)#将工程根目录加入到python搜索路径中 sys.path.extend([rootpath+i

  • 在cmd中运行.py文件: python的操作步骤

    1 打开cmd, 不改变运行的目录: 输入python 空格  调试好的python文件路径 或者python 空格  将python文件拖入cmd中 2 打开cmd 输入要改变的路径盘 比如:E: (回车键) 输入路径languang\sublime\pythonTest.py 回车运行 以上这篇在cmd中运行.py文件: python的操作步骤就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: 在CMD命令行中运行python脚本的方法

  • 对Python的交互模式和直接运行.py文件的区别详解

    看到类似C:\>是在Windows提供的命令行模式,看到>>>是在Python交互式环境下. 在命令行模式下,可以执行python进入Python交互式环境,也可以执行python hello.py运行一个.py文件,但是在Python交互 式环境下,只能输入Python代码执行. Python的交互模式和直接运行.py文件有什么区别呢? 直接输入python进入交互模式,相当于启动了Python解释器,但是等待你一行一行地输入源代码,每输入一行就执行一行. 直接运行.py文件相当

  • pycharm不能运行.py文件的解决方法

    我的pycharm总会出现如下图中的问题: 按快捷键运行也不行,查了半天网上没人遇到这种错误??为什么我的code之路如此艰难T.T记录一下我的解决办法: 点这里: 编辑结构,然后出现: 按照图上步骤依次设置,点击确定.再点击运行按钮即可.虽然右键文件还是会出现不至于,但是直接点击右上角运行按钮即可正常运行. 以上这篇pycharm不能运行.py文件的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Python 运行.py文件和交互式运行代码的区别详解

    代码版本:3.6.3 1. 交互式运行代码会直接给出表达式的结果,运行代码文件必须print才能在控制台看到结果. 直接给出结果: 没有print是看不到结果的: 有print才能看到结果: 另:交互式中可以用下划线 `_` 来查看上一次输出的结果.如果给下划线赋值,这个效果就没了. 另另:如果变量的值是空,不会显示 2.   交互式输出会输出原始内容,print会输出渲染后的内容 打印字符串会带着引号,换行符也原样显示了. 字符串的引号被去掉了,换行符真的换行了 3.  交互式每一句代码都是一

  • 从头学Python之编写可执行的.py文件

    Python可是真强大.但他具体是怎么强大的,让我们一点一点来了解吧(小编每天晚上下班回家会抽时间看看教程,多充实下自己也是好的). 废话不多说,就讲一下这个背景吧: 事情是这个样子的~本着好学的精神,咱就买了本书,学习python结果呢,发现python的教程都是一个样子滴,上来的第一个helloworld都是通过IDLE来实现的.这个就比较让我头疼了,这个太简单了啊.可是我该肿么脱离IDLE来编写自己的python模块呢.于是乎,就有了这个文章 一.先讲一下我的操作步骤吧,后面再统一简单介绍

  • linux直接运行py文件的方法

    1.首先创建好文件(cd 到需要放置的目录下) touch myTest.py 2. 编辑myTest.py vi myTest.py 在里面添加内容 #!/usr/bin/env python 然后添加需要添加的代码 print('hello, world!') 然后进入命令模式,:wq保存退出vi 3. 更改myTest.py的权限,根据需要更改,这里主要用于测试,不放设置777 chmod 777 myTest.py 4. 这是可以在当前目录中直接运行myTest.py(类似windows

  • Pycharm如何运行.py文件的方法步骤

    Pycharm时一个非常好用的IDE,但是一开始的时候甚至会因为.py文件不能运行而束手无策... 这里需要说明一下Pycharm的作用,Pycharm并不是一个像matlab那样什么都自己提供的软件,它更像一个非常棒的搭桥软件:将Python和.py文件连接在一起.所以当你发现.py文件不能运行时,多半是因为.py文件的路径没有添加. 所以你需要将.py文件的路径添加了,一种是手动的方法: 1 点击配置文件 2 点击添加 3 选择python并添加.py文件路径 比如,本文中的设置如下: 当你

随机推荐