Есть ли графический интерфейс для IPython, который позволяет мне открывать / запускать / редактировать файлы Python? Мой способ работы в IDLE - открыть два окна: оболочку и файл .py. Я редактирую файл .py, запускаю его и взаимодействую с результатами в оболочке.
Можно ли использовать IPython таким образом? Или есть альтернативный способ работы?
Когда я работаю с python, у меня обычно открыты два окна терминала - одно с IPython, а другое с настроенным Vim.
Два хороших ресурса:
Хотя похоже, что вам нужна волшебная функция IPython % ed
/ % edit
:
Пример из того, что вы можете сделать:
In [72]: %ed
IPython will make a temporary file named: c:\docume~1\wjwe312\locals~1\temp\ipython_edit_ar8veu.py
В файле, который я поместил:
x = "Hello World"
print 3
После сохранения и выхода из файла:
Editing... done. Executing edited code...
3
Out[72]: "x = 'Hello world'\nprint 3\n"
In [73]: x
Out[73]: 'Hello world'
Вы можете определять функции или что-то еще - просто помните, что содержимое файла будет выполнено, когда вы закроете Это.
Другой похожий рабочий процесс - cd
в каталог, содержащий ваш скрипт Python, который вы редактируете в своем любимом редакторе. Затем вы можете % запустить
скрипт из IPython, и у вас будет доступ ко всему, что определено в файле. Например, если у вас есть следующее в файле test.py
в вашем каталоге / home /self
:
class Tester(object):
def __init__(self):
print "hi"
def knightme(name):
print "Hello, Sir ", name
, то вы можете сделать следующее:
In [42]: cd /home/myself
/home/myself
In [43]: %run test.py # <Tab> autocomplete also works
In [44]: knightme('John')
Hello, Sir John
In [45]: t = Tester()
Hi
Либо смесь или один из этих рабочих процессов должен дать вам нечто очень похожее на то, как вы привыкли работать в IDLE.
Лично я использую то, что предложил @Wayne, комбинацию vim и ipython. ..
Однако, если вы предпочитаете другой подход, взгляните на spyder .
Начиная с последней версии (1.1) ipython должен быть полностью интегрирован. Если вы загрузите более раннюю версию, с ipython в качестве внешней оболочки все будет работать нормально, но вы не получите некоторых изящных функций spyder (например, просмотра всех текущих переменных в окне рабочей области).
Spyder определенно тяжеловат, но это интересный проект.
Другой (очень, очень, новый) похожий проект, на который стоит обратить внимание, - это iep . Он будет (вроде как) работать с ipython в качестве оболочки, и я готов поспорить, что в скором времени появится более удобная интеграция с ipython. В любом случае, iep - это, по сути, более легкая альтернатива spyder.
Оба они ориентированы на научные вычисления и поэтому имеют хорошую интеграцию с такими вещами, как matplotlib (и, таким образом, могут автоматически запускать основные циклы графического интерфейса пользователя в отдельном потоке). Они не совсем похожи на "нормальные" IDE, но могут неплохо заполнить ту нишу, которую вы ищете.