无法从 putty 运行 .py 文件,语法错误:单词意外(需要“)”)

2024-01-06

我对 Python 和 Linux 都很陌生,因此要求尽可能使用最少的假设知识进行简单的解释,但是我非常愿意投入时间和精力来学习。

我有一个运行 Linux 的 Raspberry Pi 2(型号 B V1.1)。我通过 putty 与这个 pi 交互。

我正在尝试创建一个简单的竞争性反射游戏,由 2 个按钮和一个 LED 组成。我的目标是让 LED 在短时间间隔后亮起,第一个按下按钮的玩家获胜。

我正在用 python (特别是 2.7.3)为此编写脚本

我的问题是我无法从 putty 中运行任何 .py 文件,我总是收到相同的错误:

Syntax error: word unexpected (expecting ")")

为了确定问题是否是我的代码中的错误,我创建了一个非常非常简单的 .py 文件,以检查是否发生相同的错误,并且确实发生了。所以我目前相信,即使我的代码可以正常运行,某些东西也会阻止我运行任何 .py 文件。

我使用的流程如下:

首先,我从 putty 中创建一个新的 python 文件:

sudo nano test.py

接下来我输入我的 python 代码(现在非常简单,因为我无法运行任何 .py 文件)

for each in range(5):
    print 'hello'

然后我按 CTRL + O 写入文件,按 Enter 键,然后按 CTRL + X 退出

最后,我使用以下命令使文件可执行

sudo chmod u+x test.py

并尝试运行它

sudo ./test.py

再次出现类似的错误

Syntax error: "(" unexpected

然后我决定直接将代码输入到 python shell 中,使用

sudo python

>>>for each in range(5):
...    print 'hello'

这次的输出是期望的结果:

hello
hello
hello
hello
hello

所以直接从shell执行python代码没有问题,我只是无法执行任何以前保存的.py文件

非常感谢任何有关可能导致此问题的原因的见解,如果我没有提供足够的信息对您有用,我深表歉意。

提前致谢!


简短的回答:要么将它们运行为python filename.py,或者添加行#!/usr/bin/python到 Python 脚本的顶部。

长答案:当您在 Linux 中从命令行运行文件时(Raspberry Pi 正在运行),默认情况下它假定该文件是 shell 脚本文件(通常是 Bash 脚本)。因此它使用 Bash shell(或其他一些 shell,但通常是 Bash)来解释文件,而 Bash 不知道 Python 语法。如果您想使用不同的解释器(在本例中为 Python)运行文件,则必须在文件顶部添加一条以#!(通常发音为“hash-bang”,有时简称为“shebang”)。继#!字符是要使用的解释器的完整路径,例如/usr/bin/python对于 Python 脚本。 (您也可以使用/usr/bin/env python正如另一个答案所建议的;我更喜欢/usr/bin/python因为这样不可能得到错误的 Python 解释器。但这涉及到高级主题,可能超出您现在的需要。)

所以当你把这条线#!/usr/bin/python在 Python 脚本的顶部,您告诉 Linux 系统使用哪个解释器来运行程序,然后它应该 All Just Work™。

Also, STOP使用 sudo 编辑并运行它们!那只是自找麻烦。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法从 putty 运行 .py 文件,语法错误:单词意外(需要“)”) 的相关文章

随机推荐

  • 将 merge 转换为 rebase,无需再次执行 merge

    我犯了一个错误 我应该使用git pull rebase 但我发布了一个简单的git pull 合并了所有内容 现在在我的分支的头部有一个合并提交 我想摆脱那个合并提交 我想我只需发出一个git rebase i HEAD 3 将我的最后一
  • JQuery中动态元素的绑定点击事件

    我有一个 div 在通过 html 属性调用 AJAX 调用后动态填充 gallery html imagesHtml insdie imagesHtml 我有 2 个名为 pre btn 和 btn 的按钮 现在我尝试在 JQuery 中
  • VB中如何从long指定的地址获取字符串

    在vba中 有一个由long类型保存的地址 它指向一个以空结尾的字符串 但我找不到从该地址获取字符串的方法 long str address string str 您能解释一下吗 I use CopyMemory这边走 Private De
  • 为什么我的基本默认 .acceptbutton 不起作用?

    我拥有的 我有两个组框 每个组框内都有一个文本框 第三个文本框放置在两个组框的外部 按钮 1 是表单加载时的默认接受按钮 我需要的 当单击按钮 1 或按下 Enter 键 时 我需要按钮 2 成为默认接受按钮 我的问题 尽管我的代码如此 但
  • 通过 HTTP 跟踪 Web 服务器上的文本文件

    寻找有关如何解决以下问题的意见 我的 ColdFusion 9 应用程序有一个简单的记录器 可以将文本写入文件 在我的开发机器上 该文件是本地的 因此我可以使用 tail f 或 CFB 的 TailView 来观看它 我想要一个工具来在它
  • 调用函数:张量“对象”不可调用

    假设我有一个名为test如下 def test X W do stuff return stuff 我称之为使用model test X W 当我第一次调用该函数时 没有收到错误 但是 如果我再次调用该函数 则会收到错误 Tensor ob
  • 如何使用 boost::random_device 生成加密安全的 64 位整数?

    我想做这样的事情 boost random device rd boost random mt19937 64 gen rd boost random uniform int distribution
  • 使用静态数据集作为数据源

    在我的应用程序中 我有一个数据集 其中包含在我的应用程序中以不同形式使用的表 为了能够保持表单之间的并发性 并且不必每次用户打开新表单时都从数据库获取数据 我将 DataSet 作为程序类中的静态字段 如下所示 static class P
  • 在 Haskell 中创建一个列表来计算帕斯卡三角形

    我正在尝试创建一个接受整数的函数m并返回帕斯卡三角形的行数mth row 我已经构建了一个choose函数 它接受两个整数 n 和 k 并返回值 n 选择 k 例如 choose 3 2返回 3 到目前为止 我已经 pascal 0 1 p
  • 为什么饱和度和色调的最大值分别为 240 和 239?

    在 ColorDialog 中 为什么饱和度和色调的最大值分别为 240 和 239 它们对应什么 在 Windows 中 HSL 和 HSV 空间通常会重新映射到 0 到 240 之间的比例 以便可以用 32 位值表示颜色 See htt
  • 在 SVG 中缓和 animateMotion

    我想对 animateMotion 标签应用缓动 我对哪些属性与动画形状相关感到困惑 如果我理解得很好的话计算模式 样条线 是必需的 同时还需要定义keyTimes and 关键样条线 但是使用怎么样关键样条线 and values 但是
  • 如何在php中获取准确的IST时间?

    在 php 中 我使用了日期函数 例如 date Y m d h m s 它不会显示当前时间请帮助我 你想要印度时间 这是我的解决方案 您可以使用Asia Calcutta or Asia Kolkata 两者将同时返回 date defa
  • Visual Studio Code 高级搜索要包含的文件中的通配符

    我正在尝试为具有特定文件名条件的所有文件找到一行代码 我正在尝试利用高级搜索Visual Studio Code 的方法是将wildcard in the 要包含的文件搜索领域 但我没能做到这一点 我尝试使用asterisk 符号 但我认为
  • 更好的 ruby​​ markdown 解释器?

    我正在尝试找到一个可以在 rakefile 中使用的 markdown 解释器类 模块 到目前为止我已经找到了maruku http maruku rubyforge org 但我对测试版有点警惕 有人遇到过 maruku 的问题吗 或者
  • 使用 Graph API 时出现“租户 guid 的租户不存在” - 用户类型为会员的事件

    我正在尝试使用 Microsoft Graph API 访问电子邮件 当我尝试访问电子邮件时 出现以下错误 Microsoft Graph ServiceException 代码 OrganizationFromTenantGuidNotF
  • 如何确定处理器运行的字节序模式?

    如何仅使用汇编语言确定 ARM 处理器运行的字节序模式 我可以很容易地看到 Thumb ARM 状态读取 CPSR 的第 5 位 但我不知道 CPSR 或其他地方是否有对应的位用于字节序 silly example trying to ex
  • 设置 Actionbarsherlock 选项卡的样式

    因此 我尝试设置 Actionbar 选项卡的样式 这是我使用 ActionBarSherlock 库实现的 这是我的代码
  • 无法使用正确的电子邮件和姓名登录

    我正在使用 AJAX 创建登录表单 我基本上在 PHP 上工作 我对 ajax 没有太多了解 请大家帮助我解决我的疑问 当我在电子邮件 ID 和名称中输入任何值时 它就会被记录进入该页面 假设如果我给出了错误的姓名和电子邮件 那么我不会抛出
  • Java - 使用一个函数处理多个事件?

    首先 我是一个十足的Java NOOB 我想用一个函数处理多个按钮按下 并根据单击的按钮执行某些操作 我正在使用Netbeans 并且我添加了一个具有绑定功能的事件 默认情况下 该函数会发送一个 ActionEvent 如何获取单击的对象以
  • 无法从 putty 运行 .py 文件,语法错误:单词意外(需要“)”)

    我对 Python 和 Linux 都很陌生 因此要求尽可能使用最少的假设知识进行简单的解释 但是我非常愿意投入时间和精力来学习 我有一个运行 Linux 的 Raspberry Pi 2 型号 B V1 1 我通过 putty 与这个 p