在Win Explorer中双击foo.py无法运行,但其他运行方法可以。

2024-06-16 12:27:09 发布

您现在位置:Python中文网/ 问答频道 /正文

简短回答:如果文件末尾没有input(),那么在从资源管理器双击时,请检查Python的哪个版本正在尝试运行脚本。为此,请将import pdb; pdb.set_trace()放在脚本的某个位置,双击它,然后查看窗口的标题。在

问题在标题中。我已经编写了一个简单的python应用程序,如果我从Iddle运行它,如果我通过命令行“python”运行它,它就可以很好地工作食品“(使用Windows 10)。在

但是,如果在win中双击运行,则不起作用。探险家。命令行窗口弹出,闪烁-然后就消失了。我总算得出了这样的结论:

from pysvn import Client
from urllib import parse

防止任何不好的事情发生,应用程序可以运行,但我需要这些导入。在

是什么原因造成的?我确信文件关联设置正确,双击会导致C:\Python\Python 3.5.3\python.exe打开.py文件。从命令行运行.py和从win运行它们有什么区别。探险家?在

编辑1:我确实尝试过创建一个bat文件,其中包含以下行:"C:\Python\Python 3.5.3\python.exe" foo.py %*-而且它工作得很好。但是,一条捷径命令行.exe如前所述,{a1}不起作用。在

编辑2:@Mark Mikofski的评论帮助我注意到,尽管我认为双击会导致C:\Python\Python 3.5.3\python.exe打开.py文件-进程名显示它是python2.7。即使我右键单击食品文件并手动打开python.exe从python3.5文件夹。这对我来说是个谜,但是卸载Python2.7有助于解决这个问题,所以现在我知道我应该研究如何使不同版本的python顺利运行,以及/或如何告诉脚本使用特定的版本(shebang在windows上似乎不起作用)


Tags: 文件命令行frompyimport版本脚本应用程序
1条回答
网友
1楼 · 发布于 2024-06-16 12:27:09

However it doesn't work if run by double-clicking in win. explorer. Command line window pops up, flashes - and it's gone.

这在Windows下是正常的,如果希望命令提示符窗口在您按enter键之前保持不变,则需要将input放在脚本的末尾。一旦你的控制台程序执行并到达文件末尾,你什么都没有了,它就会退出,这是默认情况下在Windows下。在

What could possibly cause this? I am sure that file association is set correctly and double clicking causes C:\Python\Python 3.5.3\python.exe to open .py files. What's the difference between running .py from command line and running them from win. explorer?

*如果您的Windows机器中安装了Python Windows启动器,单击“文件”将运行py.exe文件并且此可执行文件将确定正确的python.exe要运行脚本,除非将文件关联从Windows更改为运行python.exe直接安装,或者选择不一起安装启动器。最大的区别在于,Windows文件资源管理器可能运行,也可能不运行python.exe,在Windows中,当您在命令提示符下键入:python.exe myscript.pyexecutesmyscript.pypython.exe。通常Windows会发现python.exe来自环境变量PATH。在

尝试单击此脚本并查看发生的情况:

#myscript.py
input("Press enter to exit")

单击此脚本文件时,控制台窗口应保持不变。在

相关问题 更多 >