使用conda环境运行gud-pdb

问题描述 投票:0回答:2

如何在给定pdb环境中激活的文件上运行emacs中的conda

我已经设置了exec-pathPATH来包含当前的conda路径,例如。

exec-path
("~/miniconda3/envs/sci/bin" ...)

(getenv "PATH")
"~/miniconda3/envs/sci/bin:..."

从emacs内部,

(executable-find "python")
"~/miniconda3/envs/sci/bin/python

返回正确的python。 pdb位于“/ usr / bin / pdb”。但是,如果我在pdb conda环境中运行的文件上运行sci,例如。它有numpy等安装,pdb找不到那些库:

test.朋友

import numpy as np
import pandas as pd

tst = np.linspace(1, 10, num=10)
print(tst)

pdb ./test.py

Current directory is 
~/scratch/python/
> 
~/scratch/python/test.py(1)<module>()
-> import numpy as np
(Pdb) n
ImportError: 'No module named numpy'
> 
~/scratch/python/test.py(1)<module>()
-> import numpy as np
(Pdb) 
python emacs conda pdb gdb-python
2个回答
0
投票

定制gud-pdb-command-namepython -m pdb似乎工作。

所以,pdb python -m pdb ./test.py在正确的环境中运行。


0
投票

当使用virtualenv或conda时,我所做的是激活终端中的env,然后从该终端启动emacs。在Mac上:

$ conda activate hcpy
(hcpy)$ /Applications/Emacs.app/Contents/MacOS/Emacs

如果你想只是拥有emacs的终端版本,请添加参数-nw

然后在emacs中命令M + x pdb

对我来说很好。这里的问题是经常有多个python安装。因此,emacs找不到python exe是不够的,emacs需要找到安装了库的python。

所以,例如,如果我去:

$which python

我明白了:

/Users/jamesanderson/anaconda3/bin/python

但是,如果我去:

$source ./.py3dev/bin/activate
$which python
/Users/jamesanderson/code/python/camera/.py3dev/bin/python

因此,使用带有所需库的conda设置虚拟环境。当你在emacs内部并启动一个shell时,执行which python步骤。答案必须是安装了库的python实例。

© www.soinside.com 2019 - 2024. All rights reserved.