Передача аргумента командной строки скрипту Python в Eclipse (Pydev) - PullRequest
24 голосов
/ 04 декабря 2010

Я новичок в Python & Eclipse, и у меня возникли некоторые трудности с пониманием того, как передать аргумент командной строки в скрипт, работающий в Eclipse (Pydev).

Следующая ссылка объясняет, как передать аргумент командной строки в скрипт Python.

Для передачи аргумента командной строки в модуль argecho.py (код по ссылке выше),

#argecho.py
import sys

for arg in sys.argv: 1
    print arg

Мне нужно набрать в консоли Python

[you@localhost py]$ python argecho.py             
argecho.py

или

[you@localhost py]$ python argecho.py abc def     
argecho.py
abc
def

Как бы я передавал те же аргументы скрипту Python в Eclipse (Pydev) ???

Спасибо!

Ответы [ 5 ]

55 голосов
/ 04 декабря 2010

Нажмите кнопку воспроизведения со стрелкой вниз на панели инструментов -> запустить конфигурации -> (двойной щелчок) Python Run -> вкладка Arguments с правой стороны.

Оттуда вы можете заполнить текстовое поле Аргументы программы:

enter image description here

10 голосов
/ 05 декабря 2010

Если вы хотите, чтобы ваша программа запрашивала аргументы в интерактивном режиме, тогда они перестают быть аргументами командной строки как таковыми.Однако вы могли бы сделать это примерно так (только для отладки!), Что позволит вам в интерактивном режиме вводить значения, которые программа будет видеть в качестве аргументов командной строки.

import sys
sys.argv = raw_input('Enter command line arguments: ').split()

#Rest of the program here

Обратите внимание, что Эндрю работает намного лучше.Кроме того, если вы используете Python 3. *, он должен быть input вместо raw_input,

2 голосов
/ 02 ноября 2011

Выберите «Свойства» - >> «Настройки запуска / отладки».

Выберите соответствующий файл на правой панели и нажмите кнопку «Редактировать».Это откроет свойства выбранного файла.Там есть вкладка "Аргументы".

1 голос
/ 18 июля 2014

Годы спустя, а не Затмение, но вариант других ответов на run my.py M=11 N=None ... в sh или IPython:

import sys

# parameters --
M = 10
N = 20
...

# to change these params in sh or ipython, run this.py  M=11  N=None ...
for arg in sys.argv[1:]:
    exec( arg )
...
myfunc( M, N ... )

См. Анализ строки в одной строке для гибкого тестирования в python под gist.github.com / denis-bz .

0 голосов
/ 15 февраля 2012

Что я делаю:

Откройте проект в перспективе отладки.В консоли всякий раз, когда отладчик прерывается в точке останова, вы можете набрать команду python в «консоли» и нажать return (или ввести).Символ ">>" отсутствует, поэтому его трудно обнаружить.

Но мне интересно, почему у eclipse нет оболочки python: (

...