我正在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
将pdb
可执行文件复制到您的环境中,并将shebang(第一行)从#!/usr/bin/python
设置为#!/usr/bin/env python
。如果您希望这是任何环境(包括系统pdb)的默认行为,则只能在/usr/bin/pdb
中更改shebang。
或者,使用python3 -m pdb <script>
将pdb与conda和python 3一起使用