我写了以下作业作业的以下内容,它在运行Python 3的Eclipse和Eclipse中正常工作。

但是,我试图用新线1(我在这里找到的新行)将其运行,以将其指向Mac上的Python 3。它似乎正在运行Python 3,但返回错误。它说:Eoferror:阅读一行时EOF。它指的是下面的第5行。

有人知道为什么吗?

顺便说一句,这个文本伴侣问题不是家庭作业的一部分,因此我不是要获得家庭作业的帮助。我只想弄清楚如何使用Python 3使用文本对象。

#! /usr/local/bin/python3
#
# Tests user string against two conditions.
#
user_string = input("Enter a string that is all upper case and ends with a period: ")
if user_string.isupper() and user_string.endswith("."):
    print("Your string met both conditions.")
else:
    if user_string.isupper():
        print("Your string does not end with a period.")
    elif user_string.endswith("."):
        print("Your string is not all upper.")
    else:
        print("Your string failed both conditions.")
有帮助吗?

解决方案

您看到的问题与Python版本无关。问题在于,文本伴侣不会尝试重定向标准输入,因此,当您通过Textmate的Python Bundle运行时 Run Script 命令,Python程序看到了立即的文件结束。 如这里所述, ,曾经对此更奇怪,但是它使用的机制不再在OS X 10.6中起作用,因此该功能已被禁用。

一种解决方案是使用 Shift-Command-R Run Script in Terminal Textmate的Python捆绑包的命令。这会导致文本伴侣打开终端窗口并在此处运行脚本,您可以输入其中的输入。不幸的是,虽然文本成员确实尊重Shebang线 命令r Run Script command, ,似乎没有这样做 Run Script in Terminal 命令。您可以以各种方式验证自己。尝试在Textmate中运行此代码段:

#! /usr/local/bin/python3
import sys
print(sys.executable)

为了解决这个问题,您可以设置 TM_PYTHON 环境变量文本成员。看 答案 有关如何做到这一点的更多详细信息。

其他提示

Textmate正在使用内置的Python,而不是尊重Shebang线。您可能必须破解捆绑代码才能使用正确的python。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top