2015-04-30 1 views
1

Я в процессе перехода от использования Eclipse к Emacs 24.3 и Elpy 1.7.50 для разработки моего Python. Тем не менее, я столкнулся с препятствием в получении Elpy, чтобы узнать мой проект. Основываясь на моем понимании того, как elpy должен работать с documentation, если я устанавливаю корневую папку проекта, эта папка должна быть включена в sys.path для поиска модулей. Этого не происходит.Emacs 24 с Elpy 1.7.50 не распознает проект Python

Elpy Documentation, похоже, не имеет ответов на мою конкретную загадку, и я не могу найти базовый учебник, который поможет мне создать мой первый проект Elpy, чтобы сломать его и показать, что я делаю неправильно.

В оболочке, я сначала создать виртуальную среду virtualenv использованием mkvirtualenv из virtualenvwrapper. Затем я создаю следующую папку/структуру файла в папке virtualenv:

virtualenv/ 
└─ my_project/ 
    ├─ src/ 
    │ └─ my_project/ 
    │  ├─ __init__.py 
    │  └─ foo.py 
    └─ test/ 

Содержание foo.py являются:

class foo(object): 
    pass 


if __name__ == '__main__': 
    pass 

Далее я подключить к уже запущенному экземпляру сервера Emacs с помощью Клиент Emacs. В Emacs, я ввожу:

M-x pyvenv-workon virtualenv 

Emacs действительно показывает [my_project] в строке режима. Далее, я ввожу:

M-x elpy-set-project-root ~/Projects/my_project/src 

Затем я печатаю CcCf искать проект для файла, и я получаю:

C-c C-f is undefined 

Итак, я типа:

M-x elpy-find-file 

и я получаю:

No project root found 

Если я создаю файл test/test_foo.py со следующим кодом:

from my_project import foo 

if __name__ == '__main__': 
    pass 

, а затем запустить его с помощью С-СС-С, я получаю:

>>> Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/doug/Projects/my_project/src/test/test_foo.py", line 1, in <module> 
    from my_project import foo 
ImportError: No module named 'my_project' 
>>> 

ответ

0

Не могли бы вы рассмотреть ~/.emacs.d/elpa/find-file-in-project-3.3/find-file-in-project.el пожалуйста. Есть несколько строк о критериях определения проекта, и я нашел:

(require 'cl) 
(defvar ffip-project-file ".git" 
    "The file that should be used to define a project root. 

Я проверил Mx elpy-зор-проект-корень и Mx elpy-найти-файл в моем мерзавца репо, и он работает (с несколькими причуды :-).

Другими словами: не стесняйтесь настраивать его самостоятельно.

0

Вы пытались установить снаряд? Он решил аналогичные проблемы на https://github.com/jorgenschaefer/elpy/issues/957 и Set Python project root in Emacs?.

Вы можете установить снаряд с помощью менеджера пакетов Emacs, и:

M-х пакетов-список-пакеты, выберите метательный (Shorthands: я х пометить как установить и выполнить).

+1

Coudl, пожалуйста, добавьте еще немного контекста к самому вопросу, а не к ссылкам? Например, как установить снаряд (при условии, что он установлен по пипу или аналогичный). –

+0

@chade_: Устанавливается внутри emacs. Спасибо за ответ. –

Смежные вопросы