运行 具有 conda 环境的 gud-pdb
Running gud-pdb with conda environment
如何从 emacs 运行 pdb
在给定 conda
环境中激活的文件上。
我已经设置 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
returns 正确的 python。 pdb
位于“/usr/bin/pdb”。但是,如果我 运行 pdb
在 sci
conda 环境中 运行ning 的文件上,例如。它安装了 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找到a 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 实例。
如何从 emacs 运行 pdb
在给定 conda
环境中激活的文件上。
我已经设置 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
returns 正确的 python。 pdb
位于“/usr/bin/pdb”。但是,如果我 运行 pdb
在 sci
conda 环境中 运行ning 的文件上,例如。它安装了 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找到a 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 实例。