我正在通过“用Python自动化无聊的东西”来学习Python,并且我坚持能够执行我的程序。我已将 Python 安装目录添加到系统环境变量中(见下文)。当我从终端运行“py”或“python”时,它确实会打开 Python 窗口。但是,当我尝试通过键入“py pw.py”或“python pw.py”来运行特定程序(例如,名为 pw.py)时,什么也没有发生。我的程序中有一个 shebang 行 (#! python3)。看起来窗口短暂地试图打开,但随后就什么也没有了。有什么想法吗?
这是程序:
#! python3
PASSWORDS = {'email': 'F7minlBDDuvMJuxESSKHFhTxFtjVB6','blog':'VmALvQyKAxiVH5G8v0lif1MLZF3sdt','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)
已添加路径
看起来问题不在于你的“PATH”。这是您执行文件的方式。
理想情况下,应该是这样,
python [python 文件名].py [命令行参数]
就我而言,
python test.py 电子邮件
就你而言,
python [your_file_name.py] [电子邮件|博客|行李]
这对我来说在命令行和 IDE 的两个用例中都很有魅力
即有或没有命令行参数。只要检查一下你是否以正确的方式给予它
从屏幕截图中,我看到您使用的是 Windows 10(如果错误请纠正我)。在 Windows 10 中,您有 2 个命令提示符。
python 不会在常规命令提示符下启动。
我认为您正在使用常规模式命令提示符。请使用具有管理员权限的命令提示符。
检查this链接以查看如何以管理员身份打开cmd提示符。我想你也可以通过右键单击 Windows 图标来打开。
如果您仍然想使用常规的 cmd 提示符,您也可以尝试 python -i(交互模式)
当我在同一本书中看到这个例子时,我觉得很奇怪,我认为这是一次性的,但他一直在使用它们。书中的shebang行是错误的。应该是这样的:
#!/usr/bin/env python3
或
#!/usr/bin/python3
或者任何你的 python3 的完整路径。
shebang 行必须是#!然后是空格,然后是正斜杠。没有进行路径名扩展来查找解释器(env 或 python3),因此您必须指定完整路径。没有完整路径的空间和解释器名称将不起作用。在本书末尾的附录 B 中,有一个简短的部分解释了如何正确设置 shebang 线,但这只是在本书的末尾。他在第一个例子中确实提到了这一点,但作为一本初学者书籍,我确信这让不少人望而却步。
奇怪的是,他在附录 B 中指出:
在 Windows 上,shebang 行是 #! python3.
这反映了书中的用法,但据我所知,shebang 线在 Windows 中没有任何效果。如果我错了,有人纠正我。我认为这本书应该在示例中使用 #!/usr/bin/env python3 以避免混淆。
我的问题和你的一样,但这就是我尝试过的,并且成功了。
首先,在 CMD 中,从任何路径,您可以通过键入 python 来启动 Python
喜欢:
c:\>python
这说明你的windows路径是正确的。
其次,尝试将文件夹目录更改为Python代码文件夹,在我的例子中,它是c:\my Documents\PythonCode。命令是:
cd "My Documents"\PythonCode
在这个命令之后,它应该看起来像
C:\My Documents\PythonCode>
最后,输入
python test.py
这应该执行你的 py 脚本。
所以,对于你的情况,你可以尝试这个:
c:
cd c:\"Python Scripts"
python pw.py email
第一行将你的目录设置为c盘 第二行将目录设置为 Python Scripts 文件夹 第三行执行你的 pw.py 脚本。