Pylons paster не работает в ipython - PullRequest
       5

Pylons paster не работает в ipython

2 голосов
/ 12 сентября 2011

Я устанавливаю ipython, а затем запускаю команду ./paster shell dev.ini, открывая стандартную консоль python.Как я могу заставить его запустить ipython?

Ответы [ 6 ]

3 голосов
/ 06 апреля 2013

Вот как у меня это работало на Fedora 17 с IPython 0.12, paste-1.7.5.1 и pylons 1.0:

$ paster shell dev.ini
Pylons Interactive Shell
Python 2.7.3 (default, Jul 24 2012, 10:05:38) 
[GCC 4.7.0 20120507 (Red Hat 4.7.0-5)]

  All objects from project.lib.base are available
  Additional Objects:
  mapper     -  Routes mapper object
  wsgiapp    -  This project's WSGI App instance
  app        -  paste.fixture wrapped around wsgiapp

>>> __name__ = '__main__'
>>> import IPython
>>> IPython.embed()
Python 2.7.3 (default, Jul 24 2012, 10:05:38) 
Type "copyright", "credits" or "license" for more information.

IPython 0.12 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]:

Сброс __name__ необходим, потому что Pylons / Paste устанавливает __name__ в "pylons-admin", что приводит к путанице IPython (он пытается найти основной модуль по его имени в sys.modules).

1 голос
/ 13 сентября 2011

Я решил эту проблему, опустив ipython до версии 0.10

0 голосов
/ 03 декабря 2013

Попробуйте это:

paster ishell dev.ini
0 голосов
/ 12 сентября 2011

Ipython обновлен до версии .11 совсем недавно.Некоторые компоненты больше не работают правильно, особенно с библиотеками сторонних производителей.Проверьте списки рассылки на наличие пилонов, и вы можете рассмотреть сообщение об ошибке.

0 голосов
/ 12 сентября 2011

Есть ли вероятность, что ваш ipython установлен глобально, но вы используете пилоны из virtualenv , то есть --no-site-packages?Если это так, то пилоны не увидят вашу установку ipython.

0 голосов
/ 12 сентября 2011

Пробовали ли вы шаги из Pylons Quick Site Development :

13.1.2 Использование встроенной оболочки IPython

IPython предоставляет более мощную интерактивную подсказку и мощный встроенная оболочка. Если вы программист на Python и еще не пробовали IPython, вам определенно стоит взглянуть на это.

Сначала импортируйте из IPython - добавьте что-то вроде следующего на верх вашего контроллера, в нашем случае в firstapp / Контроллеры / firstcontroller.py:

из IPython. Импорт оболочки IPShellEmbed args = ['-pdb', '-pi1', 'In <\ #>: ',' -pi2 ','. \ D .: ', '-po', 'Out <\ #>:', '-nosep'] ipshell = IPShellEmbed (args, banner = 'Вход в IPython. Нажмите Ctrl-D для выхода. ', exit_msg = 'Оставив переводчика обратно в пилоны.')

Затем поместите этот код в ваше действие / метод:

ipshell («Мы в действии abc»)

Вернитесь в Pylons и продолжайте отвечать на запрос, нажав Ctrl-D.

Обратите внимание, что из-за какой-то особенной IPython.Shell.IPShellEmbed, я должен был поставить перед каждым вызов ipshell ():

ipshell.IP.exit_now = Ложный ipshell («Мы в действии abc»)

...