无法执行 Python 脚本
Posted
技术标签:
【中文标题】无法执行 Python 脚本【英文标题】:Can't Execute Python Script 【发布时间】:2017-03-27 03:47:26 【问题描述】:我正在通过“使用 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)
添加路径
Using Admin Command Prompt (some of these are typos - hit enter too fast)
【问题讨论】:
你的 .py 文件的内容是什么?它是否打印或提示某些内容以便您可以在终端上看到输出? 这是程序 - 它应该复制“密码”,但它不会复制它。将其输入终端后,没有任何内容打印或弹出。 请出示您的代码。 从哪里复制密码? 上面添加的代码 【参考方案1】:看起来问题不在于您的“PATH”。这是您执行文件的方式。
理想情况下,应该是,
python [python 文件名].py [命令行参数]
在我的情况下,
python test.py 电子邮件
在你的情况下,
python [your_file_name.py] [email|blog|luggage]
这对我来说在命令行和 IDE 中都非常有用
即有和没有命令行参数。只要检查你是否给它正确的方式
附加信息:
从屏幕截图中,我看到您使用的是 Windows 10(如果有误,请纠正我)。在 Windows 10 中,您有 2 个命令提示符。
-
一个是给普通用户的
另一个处于管理员模式。
python 不会在常规命令提示符下启动。
我认为您正在使用常规模式命令提示符。请使用具有管理员权限的命令提示符。
查看this 链接以了解如何以管理员身份打开 cmd 提示符。我认为您也可以通过右键单击 Windows 图标来打开。
如果您仍想使用常规 cmd 提示符,您也可以尝试 python -i(交互模式)
【讨论】:
嗯,坐在 Windows 10 上,python 将完全在常规命令提示符下启动(如在 cmd 中;不太高兴在 gitbash 下交互式运行,但这是通过使用 winpty 前置命令解决的另一个问题)。您的管理员要求的评论是错误的,并且安全性不是最佳实践。如果您确实需要管理员命令提示符来运行 python,您可能应该将其作为一个单独的问题提出,可能在相关的 SO 站点上(在首先可能尝试卸载 python 并以普通用户身份重新安装之后) @Foon 几个月前我在 Windows 10 中遇到了同样的问题。我认为 justlearning 也有同样的问题,这个管理员解决了这个问题。令我惊讶的是,justlearning 提到的同一个程序在我的环境中运行良好 @Foon 让我仔细检查 admin cmd 提示部分并在需要时编辑我的答案 好的,我已经在管理员访问命令提示符窗口中尝试了各种命令,但仍然没有成功。我将在上面添加一个屏幕截图。第一个错误让我想知道——我的 Python 文件必须保存在任何特定的地方吗?我只是将它们放在我的 C: 驱动器上的文件夹中。我的文件名是 pw.py @justlearning 我刚刚检查了你的屏幕截图。我可以知道你的文件 pw.py 在哪里吗?现在您正在从 windows 的 system32 文件夹运行它。请尝试导航到您的文件所在的文件夹,然后键入 python pw.py 电子邮件。例如,如果它在 C:/test 中,则导航到 C 盘中的 test 文件夹并键入上述命令【参考方案2】:当我在同一本书中看到这个例子时,这让我感到很奇怪,我认为这是一个单独的例子,但他一直在使用它们。书中的shebang线是错误的。应该是这样的:
#!/usr/bin/env python3
或
#!/usr/bin/python3
或者你的python3的完整路径是什么。
shebang 行必须是 #!然后是空格,然后是正斜杠。没有进行路径名扩展来查找解释器(env 或 python3),因此您必须指定完整路径。没有完整路径的空间和解释器名称将不起作用。在本书末尾的附录 B 中,有一小部分解释了如何正确设置 shebang 线,但这在本书的末尾。他在第一个例子中确实提到了它,但作为一本初学者的书,我相信这会让很多人失望。
他在附录 B 中奇怪地指出:
在 Windows 上,shebang 行是 #! python3.
这反映了书中的用法,但据我所知,shebang行在windows中没有任何作用。如果我错了,有人纠正我。我认为这本书应该在它的例子中使用 #!/usr/bin/env python3 来避免混淆。
【讨论】:
【参考方案3】:我的问题和你的一样,但这是我尝试过的,它奏效了。
首先,在 CMD 中,从任何路径,您都可以通过键入 python 来启动 Python
喜欢:
c:\>python
这意味着你的 windows 路径是正确的。
其次,尝试将您的文件夹目录更改为 python 代码文件夹,在我的情况下,它是 c:\my documents\PythonCode。命令是:
cd "My Documents"\PythonCode
在这个cmd之后,它应该看起来像
C:\My Documents\PythonCode>
最后,输入
python test.py
这应该会执行你的 py 脚本。
所以,在你的情况下,你可以试试这个:
c:
cd c:\"Python Scripts"
python pw.py email
第一行将你的目录设置为c盘 第二行将您的目录设置为 Python Scripts 文件夹 第三行执行你的 pw.py 脚本。
【讨论】:
以上是关于无法执行 Python 脚本的主要内容,如果未能解决你的问题,请参考以下文章
mac 在终端使用命令行启动脚本,无法使用自己安装的python去执行脚本问题