如何在Python交互控制台中执行PyDev项目?

0 投票
3 回答
3325 浏览
提问于 2025-04-17 05:49

我刚开始学习Python和PyDev,最近在PyDev里写了一个“hello world”程序。我的问题是:我该怎么在Linux终端里执行它,或者在交互式Python模式下打开它呢?我试了很多命令,比如 ./hello.pyimport hello.pypython hello.py,但得到的结果都是 SyntaxError: invalid syntax 或其他错误。

我还有另一个问题。我在Linux上打开了终端,并用 sudo eclipse 启动了Eclipse。

在PyDev中,我首先去到了

File => New => Python Project => HelloWorld (name of project) =>
right click the project => New => PyDev Module => hello (module name).

我在终端里输入的名字是模块的名字,对吧?不管怎样,我也试过用项目的名字,但还是不行。只是想确认一下。

还有,我什么时候需要用 chmod +x?每次在PyDev里写这个命令时,左边都会出现一个X,表示不正确。像这样: X chmod +x

3 个回答

0

要回答你第一个问题,如果想在交互模式下导入文件,只需使用 import filename,但不要加上 .py 后缀。

C:\Users\CodeThis\Documents\py\search>python
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import aStar
>>> aStar.search((0,0),(5,9))
[(0, 0), (9, 0), (8, 0), (7, 0), (6, 0), (6, 9), (5, 9)]
>>>

大概就是这样。

0

要配置PyDev,确保你先阅读它的入门手册:http://pydev.org/manual_101_root.html

现在,你可能遇到了语法错误,因为你在使用Python 3。在Python 3中,print不再是一个关键字,而是一个函数(所以你需要像调用函数一样使用print()),另外要记住,raw_input()在Python 3中被改名为input()。

0

我现在明白你在问什么了。如果你想从命令行执行一个文件里的内容,最简单的方法就是把它放在一个类里面。

试着把你的代码改成下面这样:

#!/usr/bin/python

class Hello:
    def __init__(self):
        print "Hello, Interactive Shell World!"
        raw_input()

这样就创建了一个叫做 Hello 的类,构造函数会运行你当前文件里的代码。接着,在和 hello.py 文件同一个目录下启动一个交互式的命令行。下面是一个示例会话的粘贴:

>>> from hello import Hello
>>> Hello()
Hello, Interactive Shell World!

<hello.Hello instance at 0xb782686c>
>>> 

它会打印出消息,等待输入,然后打印出新创建对象的字符串表示,最后返回到提示符。如果你想避免最后的打印输出,可以把对象赋值给一个变量,比如:

>>> h = Hello()

如果你想保持从命令行执行文件的能力(而不是从交互式命令行),可以在文件的底部添加这段代码:

if __name__ == '__main__':
    Hello()

你需要在终端中执行 "chmod +x"。在 hello.py 所在的目录下,运行:

chmod +x hello.py

这样你就可以像这样运行你的文件:./hello.py,而不是 "python hello.py"。现在想想,你可能把 Python 的交互式命令行和 Unix 命令行搞混了。你可以很容易地通过 "python hello.py" 在 Unix 命令行中运行你的文件,但如果你想在 Python 的交互式命令行中运行代码,就需要像我上面说的那样做。

撰写回答