まずオフ:python setup.py install
は、一般的にそれがインストールされているコードのコピーを作成しますので、あなたは、あなたが変更を有効にする前に、チャンスは開発のためにあなたが調整されるべきであるとしていることを実行する必要があることを発見している場合は、あなたのPYTHONPATH
やsys.path
そうPythonのサイトパッケージライブラリからではなく、ソースツリーから直接インポートする必要があります。
from pybrain.rl.environments import HoldemTask # module object, not class
print(HoldemTask.__file__)
第二に、一般的にコードの変更を行う際にPythonのプロセスを再起動するためにはるかに良いです:あなたはそれを実行するときは、すぐにあなたのコードは、メインのファイルの上にこれを置くことによって輸入されたファイルをどの確認することができますそれらが有効になっていることを確認してください。あなたが本当に再起動せずに表示するように変更を取得する必要がある場合は、をお読みください。
モジュールをPythonでリロードすると、将来のインポートにのみ影響します。リロードをインプロセスで処理するには、リロード後にインポートしたクラスオブジェクトを置き換える必要があります。たとえば、あなたが記載されているインポートを行う「メインファイル」の文脈で(クラスメソッドや関数内を結構です):
# we need a module object to reload(), not the class inside it
from import pybrain.rl.environments import HoldemTask as HoldemTask_module
reload(HoldemTask_module)
# we then need to replace the old class object with the reloaded one
# in the main file's module-wide (aka "global") namespace
global HoldemTask
HoldemTask = HoldemTask_module.HoldemTask
ここに一つの最終警告既存HoldemTask
オブジェクトを使用し続けることですこれは、pre-reloadクラスオブジェクトへの参照を埋め込むためです。インプロセスリロードが完了する唯一の方法は、元のモジュールに基づいて作成されたすべてのインスタンスをすべて破棄するようにコードが具体的に記述されているかどうかです。
ありがとうございます!私は自分のPYTHONPATHを変更し、ファイルを新しいフォルダに入れました。 –