在 conda 环境中使用 pdb 进行调试
Debuggin with pdb within a conda environment
我正在 python Conda 环境中进行开发。当运行在环境下创建的"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
一起使用
我正在 python Conda 环境中进行开发。当运行在环境下创建的"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
.
或者,使用 python3 -m pdb <script>
将 pdb 与 conda 和 python 3