Пожалуйста, помогите: IPython для Emacs на Windows падает - PullRequest
2 голосов
/ 05 октября 2010

Обновление вопросов: почему нет запроса In [1]:

Пожалуйста, смотрите следующий вывод командной строки IPython в Emacs.

Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)]
Type "copyright", "credits" or "license" for more information.

IPython 0.10 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. ?object also works, ?? prints more.


import sys
sys.path
Out[4]: 
['',
 'C:\\Python25\\scripts',
 'C:\\Python25\\lib\\site-packages\\pyflakes-0.4.0-py2.5.egg',
 'C:\\Python25\\lib\\site-packages\\pylint-0.21.3-py2.5.egg',
 'C:\\Python25\\lib\\site-packages\\logilab_astng-0.20.3-py2.5.egg',
 'C:\\Python25\\lib\\site-packages\\logilab_common-0.52.0-py2.5.egg',
 'C:\\Python25\\lib\\site-packages\\unittest2-0.5.1-py2.5.egg',
 'C:\\Python25\\Lib\\site-packages\\pyflakes',
 'C:\\Python25\\Lib\\site-packages\\Pymacs',
 'C:\\Python25\\Lib\\site-packages\\rope',
 'C:\\Python25\\Lib\\site-packages\\ropemacs',
 'C:\\Python25\\Lib\\site-packages\\ropemode',
 'C:\\WINDOWS\\system32\\python25.zip',
 'C:\\Python25\\DLLs',
 'C:\\Python25\\lib',
 'C:\\Python25\\lib\\plat-win',
 'C:\\Python25\\lib\\lib-tk',
 'C:\\Python25',
 'C:\\Python25\\lib\\site-packages',
 'C:\\Python25\\lib\\site-packages\\win32',
 'C:\\Python25\\lib\\site-packages\\win32\\lib',
 'C:\\Python25\\lib\\site-packages\\Pythonwin',
 'C:\\Python25\\lib\\site-packages\\IPython/Extensions',
 u'C:\\Home\\_ipython']

Привет,

Я использую IPython 0.10, Python 2.5 и EmacsW32 23.1 и ipython.el Rev.2927 в Windows XP.Он всегда вылетает, когда я вызываю python-shell в Emacs.Может ли кто-нибудь помочь по этой проблеме?Большое спасибо!

обновление : я попробовал исправить https://bugs.launchpad.net/ipython/+bug/290228, но это не помогло.

Сбой IPython со следующим длинныминформация об отладке:

ОШИБКА: произошла непредвиденная ошибка при токенизации ввода. Может быть повреждена или недействительна следующая трассировка сообщения об ошибке: ('EOF в многострочном операторе', (14, 0))

--------------------------------------------------------------------------- Ошибка типа
Python 2.5.2: C: \ Python25 \ python.exe, четверг30 14:00:08 2010 Произошла ошибка при выполнении кода Python.Вот последовательность вызовов функций, приводящих к ошибке, с последним (самым внутренним) вызовом last.

c: \ Python25 \ Scripts \ ipython-script.py in () 1 2 3 4 5 67 ----> 8 global load_entry_point = 9 #! C: \ Python25 \ python.exe 10 # EASY-INSTALL-ENTRY-SCRIPT: 'ipython == 0.10', 'console_scripts', 'ipython' 11 требуется = 'ipython == 0.10' 12 импортировать sys 13 из pkg_resources import load_entry_point 14 15 sys.exit (16 load_entry_point ('ipython == 0.10', 'console_scripts', 'ipython') () 17) 18 19 20 2122 23 24 25 26 27 28 29 30 31

C: \ Python25 \ lib \ site-packages \ ipython-0.10-py2.5.egg \ IPython \ ipapi.pyc в launch_new_instance (user_ns = нет, shellclass= Нет) 541 542 def check_hotname (self, name): 543, если имя в self.hotnames: 544 self.debug_stack ("Горячее имя"% s 'перехвачено "% name) 545 546 547 def launch_new_instance (user_ns = Нет, shellclass = Нет): 548 "" "Создайте и запустите новый экземпляр ipython. 549 550 Это можно вызвать даже без уже инициализированного 551 ipсессия ython запущена.552 553 Это также используется в качестве точки входа яйца для сценария 'ipython'.554 555 "" "-> 556 ses = make_session (user_ns, shellclass) 557 ses.mainloop () 558 559 560 def make_user_ns (user_ns = None): 561" "" Вернуть действительное пользовательское интерактивное пространство имен.562 563 Это создает диктат с минимальной информацией, необходимой для работы в качестве действительного пространства имен пользователя IPython 564, которое вы можете передать различным встраиваемым 565 классам в ipython.566 567 Этот API в настоящее время устарел.Используйте ipapi.make_user_namespaces () вместо 568 для одновременного создания как локальных, так и глобальных объектов пространства имен.569 570: Параметры: 571 user_ns: dict-like, необязательный

C: \ Python25 \ lib \ site-packages \ ipython-0.10-py2.5.egg \ IPython \ ipapi.pyc в make_session (user_ns =Нет, shellclass = Нет) 669 670 def make_session (user_ns = Нет, shellclass = Нет): 671 "" "Создает, но не запускает сеанс IPython. 672 673 Позже вы можете вызвать obj.mainloop () для возвращаемого объекта674 675 Входные данные: 676 677 - user_ns (Нет): дикт, который будет использоваться в качестве пространства имен пользователя с исходными данными 678. 679 680 ВНИМАНИЕ: не должно выполняться, когда сеанс уже существует. """681 682 import IPython.Shell 683, если shellclass равен None:-> 684 return IPython.Shell.start (user_ns) 685 return shellclass (user_ns = user_ns) 686 687 688 689 690 691 692 693 694 695 696 697 698 699

C: \ Python25 \ lib \ site-начальные пакеты \ ipython-0.10-py2.5.egg \ IPython \ Shell.pyc (user_ns = нет) 1226
th_mode = special_opts.pop () 1227
, за исключением KeyError: 1228
th_mode = 'tkthread'1229
return th_shell [th_mode] 1230
1231 1232 # Это тот, который должен вызываться внешним кодом.
1233 def start (user_ns = None):
1234 "" "Возвращать aзапуск экземпляра оболочки, имеющий дело с параметрами потоков 1235 1236 Это заводская функция, которая будет создавать соответствующую оболочку IPython
1237 в зависимости от выбора потоков пользователя. Такой селектор необходим, потому что 1238 различных инструментов GUI требуют различных деталей обработки потоков."" "1239 1240
shell = _select_shell (sys.argv) -> 1241 return shell (user_ns = user_ns) 1242 1243 # Некоторые псевдонимы для обратной совместимости
1244 IPythonShell = IPShell 1245 IPythonShellEmbed = IPShellEmbed
1246 # ************ Конец файла ************* 1247 1248 1249 1250 1251 1252
1253 1254 1255 1256

C: \ Python25 \ lib \ site-packages \ ipython-0.10-py2.5.egg \ IPython \ Shell.pyc in init (self =, argv = нет, user_ns = нет, user_global_ns = нет, debug = 1, shell_class =) 58 # Время ожидания по умолчанию для ожидания многопоточных оболочек (в секундах) 59 GUI_TIMEOUT = 10 60 61

-----------------------------------------------------------------------------

 62 # This class is trivial now, but I want to have it in to publish a

чистый 63 # интерфейс.Позже, когда внутренняя структура будет реорганизована, код, который использует этот 64 #, не должен был изменяться.65 66 класс IPShell: 67 "" "Создать экземпляр IPython." "" 68 69 def init (self, argv = нет, user_ns = нет, user_global_ns = нет, 70 debug = 1, shell_class = InteractiveShell): 71 self.IP = make_IPython (argv, user_ns = user_ns, 72 user_global_ns = user_global_ns, ---> 73 debug = debug, shell_class = shell_class) глобальный, который = неопределенный глобальный получает = неопределенный глобальный prepended = неопределенный глобальный к = неопределенный глобальныйвсе = неопределенные глобальные вызовы = неопределенное глобальное, поэтому = неопределенное глобальный заголовок = неопределенное глобальное использование = неопределенное 74 75 def mainloop (self, sys_exit = 0, banner = None): 76 self.IP.mainloop (banner) 77 if sys_exit: 78 sys.exit () 79 80

-----------------------------------------------------------------------------

 81 def kill_embedded(self,parameter_s=''):
 82     """%kill_embedded : deactivate for good the current

встроенный IPython,83 84 Эта функция (после запроса подтверждения) устанавливает внутренний флаг, так что 85 встроенный IPython никогда не активируется снова.Это полезно, чтобы навсегда отключить оболочку, которая вызывается внутри цикла: как только вы выяснили, что вам нужно из нее, вы можете затем убить ее, а затем программа 88 продолжит работу без повторного вмешательства интерактивной оболочки..

C: \ Python25 \ lib \ site-packages \ ipython-0.10-py2.5.egg \ IPython \ ipmaker.pyc в make_IPython (argv = [r'c: \ Python25 \ Scripts \ ipython-script.py ',' -i '], user_ns = None, user_global_ns = None, debug = 1, rc_override = None, shell_class =, embedded = False, kw = {}) 755 IP_rc.banner = 0 756 еслиIP_rc.banner:757 BANN_P = IP.BANNER_PARTS 758 остальное: 759 BANN_P = [] 760 761, если IP_rc.profile: BANN_P.append (профиль IPython:% s \ n '% IP_rc.profile) 762 763 # добавить журнал сообщений (возможно, пустой) 764if msg.summary: BANN_P.append (msg.summary) 765 # Последний баннер - это строка 766 IP.BANNER = '\ n'.join (BANN_P) 767 768 # Завершить создание экземпляра IPython.Это предполагает, что структура rc полностью 769 # на месте.-> 770 IP.post_config_initialization () 771 772 возврат IP 773 # ************** конец файла


774
775
776
777
778
779
780
781
782
783
784
785

C: \ Python25 \ lib \ site-packages \ ipython-0.10-py2.5.egg \ IPython \ iplib.pyc в post_config_initialization (self =) 847 Вызывается после того, как файлы конфигурации были обработаны для 848 'финализации' инициализации. "" "849 850 rc = self.rc 851 852 # Инспектор объектов 853 self.inspector = OInspect.Inspector (OInspect.InspectColors,854 PyColorize.ANSICodeColors, 855 'NoColor', 856 rc.object_info_string_level) 857 858 self.rl_next_input = Нет 859 self.rl_do_indent = False 860 # Загружать собственно строку чтения 861, если rc.readline: -> 862 self.init_readline ()# локальный ярлык, используется LOT 865 self.log = self.logger.log 866 867 # Инициализировать кэш, задать запросы на вход / выход и систему печати 868 self.outputcache = CachedOutput (self, 869 rc.cache_size, 870 rc.pprint, 871 input_sep = rc.separate_in, 872 output_sep = rc.separate_out, 873 output_sep2 = rc.separate_out2, 874 ps1 = rc.prompt_in1, 875 ps2 = rc.prompt_in2, 876 ps_out = rc.prompt_out, 877 pad_left = rc.prompts_pad_left)

C: \ Python25 \ lib \site-packages \ ipython-0.10-py2.5.egg \ IPython \ iplib.pyc в init_readline (self =) 1476
если не readline.uses_libedit: 1477 для команды rl в self.rc.readline_parse_and_bind:
1478 #print "loading rl:", rlcommand # dbg 1479 readline.parse_and_bind (rlcommand)
1480 1481 # Удалить некоторые символы из списка разделителей.Если мы столкнемся с 1482 символами Unicode, откажитесь от них.1483
delims = readline.get_completer_delims (). Encode ("ascii", "ignore") 1484 delims = delims.translate (string._idmap,
1485 self.rc.readline_remove_delims)
1486
readline.set_completer_delims (delims) 1487 # в противном случае мы получим историю монстров через некоторое время: 1488
readline.set_history_length (1000)
1489 попытка: 1490

print '* Чтение истории чтения строки '# dbg

-> 1491 readline.read_history_file (self.histfile) 1492 за исключением IOError:
1493 pass # Это еще не существует.1494 1495
atexit.register (self.atexit_operations) 1496 del atexit 1497
1498 # Настройка автоматического отступа для всех платформ 1499
self.set_autoindent (self.rc.autoindent) 1500 1501 def ask_yes_no (self,подсказка, по умолчанию = True): 1502, если self.rc.quiet: 1503 return True 1504 returnask_yes_no (подсказка, по умолчанию) 1505
1506 def new_main_mod (self, ns = None):

C: \ Python25 \ lib \ site-packages \ pyreadline \ rlmain.pyc в файле read_history_file (self =, имя файла= u'C: \ Home \ _ipython \ history ') 168 169 def set_history_length (self, length): 170' '' Установите количество строк для сохранения в файле истории.171 172 write_history_file () использует это значение для усечения файла истории 173 при сохранении.Отрицательные значения подразумевают неограниченный размер файла истории.174 '' '175 self._history.set_history_length (length) 176 177 def clear_history (self): 178' '' Очистить историю чтения строки '' '179 self._history.clear_history () 180 181 def read_history_file (self, filename = None): 182 '' 'Загрузить файл истории чтения строки.Имя файла по умолчанию ~ / .history. '' '-> 183 self._history.read_history_file (filename) 184 185 def write_history_file (self, filename = None): 186' '' Сохранить файл истории чтения строки.Имя файла по умолчанию ~ / .history. '' '187 self._history.write_history_file (имя файла) 188 189 # Функции компилятора 190 191 def set_completer (self, function = None): 192' '' Установить или удалить функцию завершителя.193 194 Если указана функция, она будет использоваться как новая завершающая функция 195;если опущен или отсутствует, любая функция завершения, уже установленная, удаляется.Завершающая функция вызывается как функция 197 (текст, состояние) для состояния в 0, 1, 2, ..., пока она не возвращает 198 нестроковое значение.Должно возвращаться следующее возможное завершение

C: \ Python25 \ lib \ site-packages \ pyreadline \ lineeditor \ history.pyc в файле read_history_file (self =, filename = u'C: \ Home \ _ipython \ history ') 55 56 history_length = свойство (get_history_length, set_history_length) 57 history_cursor = свойство (get_history_cursor, set_history_cursor) 58 59 def clear_history (self): 60 '' Очистить историю чтения строки. '' '61 self.history [:] = [] 62self.history_cursor = 0 63 64 def read_history_file (self, filename = None): 65 '' 'Загрузить файл истории readline.' '' 66, если имя файла отсутствует: 67 filename = self.history_filename 68 try: 69 для открытой строки(имя файла, 'r'): ---> 70 self.add_history (lineobj.ReadLineTextBuffer (sure_unicode (line.rstrip ()))) глобальный n = неопределенный глобальный Xd = неопределенный глобальный S = неопределенный глобальный NR = неопределенный глобальный i =неопределенный глобальный R2 = неопределенный глобальный R = неопределенный глобальный t = неопределенный глобальный history_search_forwardt = неопределенный глобальный history_search_backwardt = неопределенный глобальный joinR2 = неопределенный global maxR = неопределенный глобальный монетный двор = неопределенный глобальный IndexError = неопределенный глобальный RX = неопределенный глобальный частичный = неопределенный глобальный hcstartt = неопределенный глобальный hct = неопределенный глобальный ht = неопределенный глобальный результат = неопределенный глобальный s = неопределенный глобальный C = неопределенный глобальный Python25 = неопределенный глобальный lib= неопределенный глобальный сайт = неопределенные глобальные пакеты = неопределенный глобальный pyreadline = глобальный линейный редактор = неопределенный глобальный history.pyt = неопределенный глобальный поиск = неопределенный глобальный I = неопределенный глобальный c = неопределенный глобальный d = неопределенный глобальный поиск = неопределенный глобальный форвард = неопределенныйглобальное сквозное = неопределенное глобальное сквозное = неопределенноеглобальная история = не определено глобальная строка = глобальный из = неопределенный глобальные символы = неопределенные глобальный между = неопределенный глобальное начало = не определено глобальный ток = не определено line = 'import sys \ n' глобальная точка. Это = не определено глобальный а = неопределенный глобальный не = неопределенный глобальный инкремент = неопределенный глобальный поиск. глобальное значение по умолчанию = неопределенное глобальный это = не определено глобальная команда = неопределенная global unbound.i = не определено глобальный Rj = неопределенный глобальный Re = неопределенный глобальный q = неопределенный global history.pyR = не определено глобальный отсталый = неопределенный глобальный рк = неопределенный global history.pyR = не определено глобальный N = неопределенный глобальное свойствоR = не определено глобальный R4 = не определено глобальный R5 = неопределенный глобальный R7 = не определено глобальный R8 = неопределенный глобальный RC = неопределенный глобальный RD = неопределенный глобальный R_ = неопределенный global s.t = undefined

Нажмите Enter для выхода: глобальный _ main _t = не определено глобальный aaaat = не определено глобальный аабат = неопределенный глобальный aacat = неопределенный global akcat = undefined глобальный bbbt = неопределенный глобальный ako = неопределенный глобальный рет = неопределенный глобальный операторRS = не определено глобальный sysR = не определено global pyreadline.unicode_helperR = не определено глобальные модули R = не определено глобальное исключение = неопределенное глобальное ExceptionR = не определено global pyreadline.loggerR = не определено global FalseR9 = не определено глобальный объектR = не определено глобальный RLR = неопределенный global history.pys = undefined глобальный модуль = неопределенный 71 кроме IOError: 72 self.history = [] 73 self.history_cursor = 0 74 75 def write_history_file (self, не имя_файл = None): 76 '' 'Сохраните файл истории readline.' '' 77 если имя файла None: 78 filename = self.history_filename 79 fp = open (имя файла, 'wb') 80 для строки в self.history [-self.history_length:]: 81 fp.write (sure_str (line.get_line_text ())) 82 fp.write ('\ n') 83 fp.close () 84 85

C: \ Python25 \ Lib \ сайт-пакеты \ pyreadline \ unicode_helper.pyc в sure_unicode (text = 'import sys') 5 # Распространяется в соответствии с условиями лицензии BSD. Полная лицензия в 6 # файл COPYING, распространяемый как часть данного программного обеспечения. 7

************** *****************************

  8 import sys
  9
 10 try:
 11     pyreadline_codepage=sys.stdout.encoding
 12 except AttributeError:        #This error occurs when pdb imports readline and doctest has replaced
 13                               #stdout with stdout collector
 14     pyreadline_codepage="ascii"   #assume

кодовая страница ascii 15 16 17 def sure_unicode (текст): 18 "" "помощник, чтобы гарантировать, что текст, переданный в WriteConsoleW юникода «»» 19 если isinstance (текст, стр.): ---> 20 вернуть text.decode (pyreadline_codepage, «Заменить») 21 возврат текста 22 23 def sure_str (текст): 24 "" "Преобразовать юникод в str с помощью pyreadline_codepage" "" 25 если isinstance (текст, юникод): 26 вернуть text.encode (pyreadline_codepage, «Заменить») 27 возвращаемый текст 28 29 30 31 32 33 34 35

TypeError: аргумент decode () 1 должен быть строка, а не None


Упс, IPython разбился. Мы делаем все возможное чтобы сделать его стабильным, но ...

Отчет о сбое был автоматическисоздается со следующей информацией: - дословная копия отслеживания аварии.- Копия вашей истории ввода во время этой сессии.- Данные о вашей текущей конфигурации IPython.

Он был оставлен в файле с именем: 'C: \ Home_ipython \ IPython_crash_report.txt' Если вы можете отправить этот файл разработчикам по электронной почте, информация в нем поможет им впонимание и исправление проблемы.

Вы можете отправить ее по адресу: Фернандо Перес на fperez .... @ gmail.com с темой «Отчет об аварийном завершении IPython».

Если вы хотите это сделатьтеперь будет работать следующая команда (под Unix): mail -s 'IPython Crash Report' fperez .... @ gmail.com

Для обеспечения точного отслеживанияпо этому вопросу, пожалуйста, сообщите об этом по адресу: https://bugs.launchpad.net/ipython/+filebug

1 Ответ

3 голосов
/ 06 октября 2010

Установка pyreadline должна помочь.

...