Запускать «сервер лектора» под Pycharm Debugger? - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь начать работу с внутренними компонентами Lektor CMS и хотел бы запустить его под управлением великолепного отладчика Pycharm.В частности, я хочу запустить

$ lektor server

Я выполнил шаги

$ git clone https://github.com/lektor/lektor
$ cd lektor
$ virtualenv venv
$ . venv/bin/activate
$ pip install --editable .
$ make build-js
$ make install-git-hooks
$ export LEKTOR_DEV=1
$ lektor quickstart --path example-project
$ lektor --project example-project server

в Git-файле readme о разработке, и они прекрасно работают в терминале.Затем я создал следующую конфигурацию отладки Pycharm:

Однако при этом выдается следующее исключение RuntimeException:

Traceback (most recent call last):
  File "/home/barrios/IDEs/pycharm-community-2018.1.1/helpers/pydev/pydevd.py", line 1664, in <module>
    main()
  File "/home/barrios/IDEs/pycharm-community-2018.1.1/helpers/pydev/pydevd.py", line 1658, in main
    globals = debugger.run(setup['file'], None, None, is_module)
  File "/home/barrios/IDEs/pycharm-community-2018.1.1/helpers/pydev/pydevd.py", line 1085, in run
    runpy._run_module_as_main(module_name, alter_argv=False)
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/barrios/code/lektor/lektor/__main__.py", line 3, in <module>
    main(as_module=True)
  File "/home/barrios/code/lektor/lektor/cli.py", line 627, in main
    cli.main(args=args, prog_name=name)
  File "/home/barrios/code/lektor/venv/local/lib/python2.7/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/home/barrios/code/lektor/venv/local/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/barrios/code/lektor/venv/local/lib/python2.7/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/barrios/code/lektor/venv/local/lib/python2.7/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/home/barrios/code/lektor/venv/local/lib/python2.7/site-packages/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args[1:], **kwargs)
  File "/home/barrios/code/lektor/venv/local/lib/python2.7/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/home/barrios/code/lektor/lektor/cli.py", line 387, in server_cmd
    browse=browse)
  File "/home/barrios/code/lektor/lektor/devserver.py", line 124, in run_server
    dt.start()
  File "/home/barrios/code/lektor/lektor/devserver.py", line 75, in start
    portable_popen(['npm', 'install', '.'], cwd=admin).wait()
  File "/home/barrios/code/lektor/lektor/utils.py", line 486, in portable_popen
    raise RuntimeError('Could not locate executable "%s"' % cmd[0])
RuntimeError: Could not locate executable "npm"

Process finished with exit code 1

Очевидно, что это можетне могу найти npm для инициализации веб-интерфейса.При замене параметра «server» на «build» отладка работает нормально.Разве невозможно запустить этот код Javascript через подпроцесс из отладчика Pycharm?

Или что еще я делаю неправильно?Любые идеи, как это исправить?TNX заранее.

РЕДАКТИРОВАТЬ: я читал в каком-то другом SO-потоке Pycharm, вероятно, выполняет подпроцесс под системным интерпретатором Python за пределами virtualenv?!?Это объясняет, почему он портит зависимости, но команда npm доступна в любом месте системы ... Так почему же она не найдена ???

...