emacs-for-python(基于python.el
)提供了很好的能力来启动 Python 进程并直接从 Emacs 那里发送缓冲区(通常你用C-c C-c
)。但是,这种方式会为每个缓冲区创建新进程,并将 Python 的工作目录设置为相应文件的目录。
相反,我希望将工作目录设置为项目根目录的单个 Python 进程。或者甚至可能是几个进程,但从根目录开始,而不是模块的目录。
为什么我需要它?都是关于进口的。想象一下以下项目结构:
myproject
package1
__init__.py
mod1.py
package2
__init__.py
mod2.py
如果我在 file 上启动 Python 进程mod1.py
,Emacs 会自动将工作目录设置为,myproject/package1
这样我就只能从同一个包中导入模块。没有从其他包导入。没有绝对进口。疼痛。
目前我使用一个技巧sys.path
,比如:
import sys, os
sys.path.insert(0, os.path.join(os.path.abspath(__file__), '..', '..'))
在每个模块的开头。但这真的,真的,真的很丑陋和不方便。
那么有没有人有任何提示或技巧来为 Emacs 中的劣质进程设置 Python 的项目根目录?