2

最近、プロジェクトのソース コードを理解しようとしています。プロジェクトを 1 行ずつ実行すると、次の行まですべて正常に動作します。

res = subprocess.call(command, env=os.environ)

変数「command」を確認したところ、この関数はコマンドを別の python スクリプトにスローし、サブプロセスで実行しようとするだけであることがわかりました。そこで、Eclipse から飛び出し、同じディレクトリの下で Terminal からコマンドを実行しようとしました。

これが私が得たものです:

Traceback (most recent call last):
  File "/home/elderry/Projects/git/tahoe-lafs/support/bin/tahoe", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2850, in <module>
    working_set.require(__requires__)
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 696, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 594, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: allmydata-tahoe==1.10.0.post27

その後、方向性を完全に失いました。サブプロセスはどこで実行され続けましたか? スクリプトがプログラムではうまく機能するのに、ターミナルでは機能しないのはなぜですか? そのスクリプトもプロジェクトに含まれているため、Eclipse でいくつかのブレークポイントを設定したことを期待して、何もキャッチしませんでした。サブプロセスモジュールのコード自体のコードに飛び込むのではなく、サブプロセスにデバッグする方法はありますか?

4

1 に答える 1