在conda环境中使用pdb进行调试

时间:2016-07-13 08:37:01

标签: python anaconda pdb

我在Conda环境中开发python。在运行" python"时,我可以成功导入我添加到环境中的所有包。在环境下创建的二进制文件但是,当尝试使用pdb调试我的任何python脚本时,我会得到相同包的ImportError。

例如,在创建新环境并添加以下包

之后
pip install keras
pip install conection

我运行以下test.py脚本

import keras
import connexion

print("I have imported keras alright")
print("I have imported connexion alright")

from keras.models import Sequential
from keras.layers import Dense, Activation

# for a single-input model with 2 classes (binary):

model = Sequential()
model.add(Dense(1, input_dim=784, activation='softmax'))

print("I have defined a keras network alright")

以通常的方式调用它时,这项工作正常,

python test.py  # Works OK

但在pdb

中以调试模式运行时失败
pdb test.py # ImportError: No module named connexion

问题是:如何正确配置pdb以使用conda环境中安装的软件包?

附加信息:虽然python二进制文件确实在conda环境中

which python # returns $HOME/miniconda3/envs/$USER/bin/python

pdb似乎总是引用系统版本

which pdb # returns /usr/bin/pdb

2 个答案:

答案 0 :(得分:5)

或者,使用python3 -m pdb <script>将pdb与conda和python 3一起使用

答案 1 :(得分:2)

pdb可执行文件复制到您的环境中,并将shebang(第一行)从#!/usr/bin/python设置为#!/usr/bin/env python。如果您希望这是任何环境(包括系统pdb)的默认行为,则只能在/usr/bin/pdb中更改shebang。