我在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
答案 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。