2

私はオープンソースの Python プロジェクトに取り組んでおり、デモ プログラムの数は適度に多く (そして着実に増加しています)。

デモ プログラムを という名前のサブディレクトリに移動しましたdemo/が、もちろんそれらを直接実行することはできません。実行すると、Python はdemo/サブディレクトリをルートと見なし、すべてのプロジェクトのインポートが失敗します。

私の修正は、実行したいデモを選択できるようにする Demo.py プログラムを最上位で作成することでしたが、このプロジェクトの他の開発者やユーザーは、これを実行する必要があることについて (かなり合理的に) 不満を持っています - 彼らはただ実行したいだけです彼らのデモを直接。

私はこれに対する良い解決策を持っていません。私が持っている最良のアイデアは、次のようなコード ブロックを各デモ ファイルの先頭に配置することです。

if __name__ == '__main__':
  import sys
  from os.path import dirname
  sys.path.append(dirname(dirname(__file__)))

エレガントではありませんが、これはうまくいくようです。

  1. より良い解決策はありますか?
  2. そうでない場合、このソリューションに注意すべき明らかなトラップはありますか?
4

1 に答える 1

0

トム、私はこの情報を他の人に役立つ場合に備えてここに入れておきます: 何か建設的なことにつながるかもしれませんが.. demos ディレクトリ内のファイルのドキュメントを生成することは不可能だと思います. また

pydoc demos/Blur.py

また

python -m pydoc -w demos/Blur.py

ファイルを実行するだけです。つまり、彼らはあなたが望んでいることだけを行います。ただし、ドキュメントを取得できません。他のすべてのディレクトリでは正常に機能します。

水田

于 2013-01-13T23:37:20.320 に答える