带有Elpy 1.7.50的Emacs 24无法识别Python项目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有Elpy 1.7.50的Emacs 24无法识别Python项目相关的知识,希望对你有一定的参考价值。
我正在使用Eclipse转换为Emacs 24.3和Elpy 1.7.50进行Python开发。但是,我遇到了让Elpy认识我的项目的障碍。基于我对elpy应该从documentation工作的方式的理解,如果我设置项目根文件夹,该文件夹应该包含在sys.path
中以搜索模块。这不会发生。
Elpy Documentation似乎对我的特殊难题没有任何答案,也没有找到一个基本的教程,引导我创建我的第一个Elpy项目来分解它并告诉我我做错了什么。
在shell中,我首先使用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
然后,我输入C-cC-f来搜索项目中的文件,然后我得到:
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
然后使用C-cC-c运行它,我得到:
>>> 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'
>>>
你能评论一下~/.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.
我已经在我的git repo中测试了M-x elpy-set-project-root和M-x elpy-find-file,它有效(有几个怪癖:-)。
换句话说:随意自己定制。
你试过安装弹丸吗?它解决了https://github.com/jorgenschaefer/elpy/issues/957和Set Python project root in Emacs?的类似问题。
您可以通过emacs的包管理器安装弹丸:
M-x package-list-packages,选择projectile(shorthands:i x标记为安装和执行)。
以上是关于带有Elpy 1.7.50的Emacs 24无法识别Python项目的主要内容,如果未能解决你的问题,请参考以下文章
NSInvalidArgumentException setSizeHasBeenSet 无法识别的选择器 - 带有属性文本