Выполнить проект PyDev в интерактивной консоли Python? - PullRequest
0 голосов
/ 08 ноября 2011

Я новичок в Python и PyDev.Я недавно сделал программу "helloworld" в PyDev.У меня вопрос: как мне выполнить или открыть его в интерактивном режиме Python (в терминале Linux) Я пробовал много команд, например ./hello.py, import hello.py, python hello.py, но единственное, что я получил, было SyntaxError: invalid syntaxили какая-то другая ошибка.

У меня также есть другой вопрос.У меня Linux и я открыл Eclipse в терминале (sudo eclipse).

В PyDev я впервые зашёл на

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

Предполагается, что имя, которое я ввел в терминал (работает Python) это модуль, нет?В любом случае я тоже пробовал с названием проекта и ничего.Просто чтобы знать.

И когда я использую chmod +x?Каждый раз, когда я пишу это в PyDev, я получаю X слева, что означает, что это неправильно.Примерно так: X chmod +x.

Ответы [ 3 ]

0 голосов
/ 08 ноября 2011

Чтобы ответить на первый вопрос о импорте в интерактивный режим, просто используйте 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 голосов
/ 08 ноября 2011

Теперь я понимаю, что вы спрашиваете.Если вы хотите выполнить что-то в файле из оболочки, самый простой способ - это инкапсулировать это в класс.

Попробуйте изменить код на следующее:

#!/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".ру».Теперь, когда я думаю об этом, похоже, вы путаете интерактивную оболочку python, которая является оболочкой unix.Вы можете легко запустить ваш файл, используя "python hello.py" из оболочки unix, но чтобы запустить код из интерактивной оболочки python, вы захотите сделать что-то, как я делал выше.

0 голосов
/ 08 ноября 2011

Чтобы настроить PyDev, обязательно прочитайте руководство по началу работы: http://pydev.org/manual_101_root.html

Теперь, вероятно, у вас есть синтаксическая ошибка, потому что вы используете Python 3, где print больше не ключевое слово, а функция (то есть вы должны использовать print () как вызов функции), а также имейте в виду, что raw_input () был переименован в input () в Python 3).

...