[英]Running gud-pdb with conda environment
如何在给定的conda
环境中激活的文件上从emacs运行pdb
。
我已经设置了exec-path
和PATH
来包含当前的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”。 但是,如果我在sci
conda环境中运行的文件上运行pdb
,例如。 它已经安装了numpy
等, pdb
找不到这些库:
test.py
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)
将gud-pdb-command-name
定制为python -m pdb
似乎可行。
因此, pdb python -m pdb ./test.py
在正确的环境中运行。
使用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
的which python
步骤。 答案必须是安装了库的python实例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.