[英]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.