代码之家  ›  专栏  ›  技术社区  ›  Rorschach

在conda环境下运行gud-pdb

  •  0
  • Rorschach  · 技术社区  · 6 年前

    我怎么跑 pdb 从emacs中的一个文件,该文件在给定的 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
    

    返回正确的python。 位于“/usr/bin/pdb”。但是,如果我跑 pdb公司 在中运行的文件上 sci numpy pdb公司 找不到这些库:

    测试.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) 
    
    2 回复  |  直到 6 年前
        1
  •  0
  •   Rorschach    6 年前

    自定义 gud-pdb-command-name python -m pdb

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

        2
  •  0
  •   James Anderson    6 年前

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

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

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

    pdb公司

    例如,如果我去:

    $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