无法执行 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 脚本的主要内容,如果未能解决你的问题,请参考以下文章

Cron作业无法执行写入文本文件的python脚本

mac 在终端使用命令行启动脚本,无法使用自己安装的python去执行脚本问题

无法从 Motioneye 执行 Python 脚本(在 Raspbian 上)

无法使用cron每分钟执行一次python 3脚本

Crontab定时任务中python3脚本无法运行问题解决

python新创建的脚本文件无法使用popen执行,求解