2016-07-13 3 views
1

私はConda環境内でPythonで開発しています。環境の下に作成された "python"バイナリを実行すると、環境に追加するすべてのパッケージを正常にインポートできます。しかし、私のpythonスクリプトをpdbでデバッグしようとすると、まったく同じパッケージに対してImportErrorが得られます。例えばコンパートメント環境内でpdbを使用するデバッグ

、新しい環境を作成し、以下のパッケージに

pip install keras 
pip install conection 

を追加した後、私は

、それを通常の方法を呼び出すときにこれが無事に動作

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") 

次test.pyのスクリプトを実行します

python test.py # Works OK 

pdbでデバッグモードで実行すると失敗します。

pdb test.py # ImportError: No module named connexion 

問題は:どのようにpdaをconda環境にインストールされたパッケージで正しく動作させるには?

追加情報:Pythonのバイナリがconda環境で実際にありながら

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

PDBは、常にシステムのバージョン

which pdb # returns /usr/bin/pdb 
+0

'/ usr/bin/pdb'の最初の行(シバン)は何ですか? –

+0

また、最初の答えをここで見て:http://stackoverflow.com/questions/3734880/getting-pdb-in-emacs-to-use-python-process-from-current-virtualenv?rq=1 –

+0

@ DeanFenster良い点は、シバンは#です! /usr/bin/python2.7、Anaconda3ディストリビューションを使用しています。それでも、pdb3(shebang#!/usr/bin/python3.4)を使うと同じ問題が発生するので、condaの代わりにpythonのシステムバージョンが使われています。 – albarji

答えて

1

コピーし、ご使用の環境に実行可能pdbを参照しているようだ、と設定シバン(第1行)は、#!/usr/bin/pythonから#!/usr/bin/env pythonまでです。これを任意の環境(システムpdbを含む)のデフォルトの動作にしたい場合は、shebangを/usr/bin/pdbでのみ変更できます。

関連する問題