Отладка приложения Crossbar.io в IntelliJ

Я создаю приложение, используя Crossbar.io в IntelliJ. Поскольку вы запускаете приложение с помощью команды crossbar start в оболочке, я не понимаю, как (в идеале автоматически) подключить отладчик Python к соответствующим сценариям. У кого-нибудь есть идеи?


person Huhwha    schedule 15.12.2014    source источник


Ответы (1)


Хороший вопрос.

Я был немного сбит с толку тем, как отлаживать, потому что кажется, что кроссбар как бы смешивает python 2 и 3 вместе. Я хотел установить crossbar.io в виртуальной среде с Python 3, потому что компоненты примеров используют Python 3, но по какой-то причине мне не удалось установить crossbar в виртуальной среде с Python 3, и я вынужден использовать Python 2 для маршрутизации WAMP. вместо. Обычно я использую pyenv, а не virtualenv, однако я считаю, что они оба похожи. В итоге я создал 2 pyenvs. Один с Python 2.7.6 исключительно для маршрутизатора crossbario, а другой с Python 3.4.2 для компонентов приложений.

Мое решение

Посмотрите на скриншот

Я не знаю, лучший ли это способ решить эту проблему, но это то, что я сделал. Я использовал PyCharm, но я считаю, что IntelliJ тоже похож.

Я не пробовал это под virtualenv, но я считаю, что это очень похоже.

  1. Установите Python 2.7.6 через pyenv

    $ pyenv install 2.7.6
    
  2. Создайте pyenv с Python 2 для crossbar.io

    $ pyenv virtualenv 2.7.6 crossbar
    $ pyenv activate crossbar
    (crossbar)$ pip install crossbar
    
  3. Найдите и скопируйте полный путь к исполняемому файлу crossbar, который вы только что установили.

    (crossbar)$ which crossbar
    

    и скопируйте путь.

  4. Установите Python 3.4.2 через pyenv

    $ pyenv install 3.4.2
    
  5. Создайте pyenv с Python 3 для компонентов приложения

    $ pyenv virtualenv 3.4.2 app
    $ pyenv activate app
    (app)$ pip install autobahn
    
  6. Создайте обычный проект PyCharm с «приложением» в качестве локальной среды Python. Я имею в виду использование исполняемого файла python из приложения pyenv в качестве интерпретатора.

  7. Создайте приложение hello world crossbar.io.

    $ pyenv activate crossbar
    (crossbar)$ crossbar init --template hello:python
    
  8. В строке меню перейдите к Run/Edit configuration...

  9. Щелкните зеленый значок + и выберите Python.
  10. Paste the full path for crossbar executable script.
    ~/.pyenv/versions/crossbar/bin/crossbar
    
  11. поместите слово start в качестве параметров скрипта.
  12. Обязательно выберите crossbar в качестве интерпретатора Python, а не приложения. Пожалуйста, поправьте меня, если я ошибаюсь, но я считаю, что интерпретатор, который мы выбираем здесь, предназначен только для запуска и отладки, а не для завершения кода и прочего.
  13. Обязательно укажите путь, по которому находится папка .crossbar, в качестве пути к рабочему каталогу.
  14. Посетите 0.0.0.0:8080, чтобы запустить сеанс отладки.
person Eddie    schedule 18.12.2014
comment
Это просто простая настройка, и она работает для меня. Взгляните на мой диалог конфигурации. - person Eddie; 18.12.2014
comment
Спасибо за действительно исчерпывающий ответ! - person Huhwha; 19.12.2014
comment
Да, сама Crossbar.io (в настоящее время) работает только на Python 2/Twisted. Компоненты приложения WAMP, подключающиеся к Crossbar.io, могут быть написаны на любом поддерживаемом WAMP языке/среде выполнения, включая Python3/asyncio. Посмотрите на Crossbar.io как на черный ящик: тот факт, что он работает на Python2/Twisted, является деталью реализации, о которой вам не следует беспокоиться. Похоже, что RabbitMQ написан на Erlang, но это не касается пользователей RabbitMQ — его можно написать на чем угодно. - person oberstet; 03.01.2015