私は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
'/ usr/bin/pdb'の最初の行(シバン)は何ですか? –
また、最初の答えをここで見て:http://stackoverflow.com/questions/3734880/getting-pdb-in-emacs-to-use-python-process-from-current-virtualenv?rq=1 –
@ DeanFenster良い点は、シバンは#です! /usr/bin/python2.7、Anaconda3ディストリビューションを使用しています。それでも、pdb3(shebang#!/usr/bin/python3.4)を使うと同じ問題が発生するので、condaの代わりにpythonのシステムバージョンが使われています。 – albarji