Python程序在命令提示符下运行,但不作为.exe运行

时间:2020-06-30 13:16:10

标签: python command-line

This is a follow up question (not directly related, but maybe related in some way)

我正在使用以下代码:

#! python3
# password.py - An insecure password locker program.
PASSWORDS = {'email': 'F7minlBDDuvMJuxESSKHFhTxFtjVB6',
 'blog': 'VmALvQyKAxiVH5G8v01if1MLZF3sdt',
 'luggage': '12345'}  

import sys,pyperclip
if len(sys.argv) < 2:
    print('Usage: python pw.py [account] - copy account password')
    sys.exit()
account = sys.argv[1] # first command line arg is the account name

if account in PASSWORDS:
    pyperclip.copy(PASSWORDS[account])
    print('Password for ' + account + ' copied to clipboard.')
else:
    print('There is no account named ' + account)
input('press ENTER to exit')

并尝试从python.exe应用程序运行它。我遵循了教科书中的指导方针:

enter image description here

并创建一个具有以下名称的 .bat批处理文件:

@py.exe C:\PythonScripts\password.py %*

(C:\ PythonScripts是我的路径)

所以,我的问题是:

当我双击该程序(或在Win + R上键入该程序)时,该窗口会突然弹出。例如,如果我将 input("press enter to exit")放在开头,它要求我按一下center(一次),然后窗口消失。我知道我在这里执行的步骤之一存在问题,因为如果我在命令提示符下执行程序,它将运行:

enter image description here

enter image description here

当我多次快速双击图标password.py时,这就是我正在谈论的窗口(显示的瞬间)。如果我在代码的开头放置input("press enter"),将出现“按Enter”字样,然后单击Enter退出。但是然后程序似乎无法正确执行(窗口立即关闭)。

1 个答案:

答案 0 :(得分:2)

我认为this是您想要做的。或者,有关this Stack Overflow question的更多信息。

第一个链接的摘录:

右键单击hello.py图标,然后检查“属性”->“使用设置打开”。可以肯定的是,您可能需要单击Change ...-> Browse ...,然后选择python可执行文件。设置选中标记始终使用选定的程序打开这种文件。

传递参数 让我们创建一个将一些参数传递给脚本的快捷方式。

  • hello.py->右键单击->创建快捷方式

  • hello.py的快捷方式->右键单击->“属性”

  • 在目标末尾添加--somevalue

      - "C:\Documents and Settings\Administrator\Desktop\hello.py" --somevalue
    
  • 单击“应用”

双击“ hello.py的快捷方式”现在应打开一个显示类似于以下内容的控制台窗口

  • hello world "['C:\\Documents and Settings\\Administrator\\Desktop\\hello.py", '--somevalue']"

如果这包括--somevalue输出有效,那么您就完成了。否则,请继续阅读有趣的部分。