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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
File "D:\03lyf\代码\seq2point_train.py", line 188, in <module> history = model.fit(train_datagen,epochs=n_epoch, File "D:\py\Anaconda3\envs\代码\lib\site-packages\keras\utils\traceback_utils.py", line 65, in error_handler return fn(*args, **kwargs) File "D:\py\Anaconda3\envs\代码\lib\site-packages\keras\engine\training.py", line 1685, in fit tmp_logs = self.train_function(iterator) File "D:\py\Anaconda3\envs\代码\lib\site-packages\tensorflow\python\util\traceback_utils.py", line 150, in error_handler return fn(*args, **kwargs) File "D:\py\Anaconda3\envs\代码\lib\site-packages\tensorflow\python\eager\polymorphic_function\polymorphic_function.py", line 894, in __call__ result = self._call(*args, **kwds) File "D:\py\Anaconda3\envs\代码\lib\site-packages\tensorflow\python\eager\polymorphic_function\polymorphic_function.py", line 926, in _call return self._no_variable_creation_fn(*args, **kwds) # pylint: disable=not-callable File "D:\py\Anaconda3\envs\代码\lib\site-packages\tensorflow\python\eager\polymorphic_function\tracing_compiler.py", line 143, in __call__ return concrete_function._call_flat( File "D:\py\Anaconda3\envs\代码\lib\site-packages\tensorflow\python\eager\polymorphic_function\monomorphic_function.py", line 1757, in _call_flat return self._build_call_outputs(self._inference_function.call( File "D:\py\Anaconda3\envs\代码\lib\site-packages\tensorflow\python\eager\polymorphic_function\monomorphic_function.py", line 381, in call outputs = execute.execute( File "D:\py\Anaconda3\envs\代码\lib\site-packages\tensorflow\python\eager\execute.py", line 52, in quick_execute tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name, KeyboardInterrupt
06-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值