同じ基本パッケージを使用して、サブプロジェクトを処理するための正しい/最も簡単な/最もpythonicな方法について疑問に思っています。現在、次のようなファイル構造があります。
trunk\
proj1\setup.py
company_name\__init__.py + proj1's code
proj2\setup.py
company_name\__init__.py + proj2's code
名前空間company_nameをすべてのプロジェクトに共通に保ちたいのですが(おそらくこれ自体は非pythonicですか?)、proj1とproj2が開発モードでインストールされると、最初にインストールされたものが壊れます。import company_name...
どのcompany_nameパッケージを調べるか混乱しているようで、最初/最後/ランダムなパッケージを取得します。
これは通常、より大きなPythonプロジェクトでどのように処理されますか?ある種のメガエッグを構築するトランクのsetup.pyでこれを解決することは可能ですか?グーグルやスタックで関連情報を見つけられなかったので、リンクだけでもどんな情報でも大歓迎です!
編集:ルートフォルダにsetup.pyを追加してみました
...
namespace_packages = ['company_name'],
package_dir = {'company_name' : ['proj1/company_name', 'proj2/company_name']}
...
ファイルに適切なものpkg_resources.declare_namespace(__name__)
がありますが、次のようになります 。__init_.py
./setup.py bdist_egg
company_nameセットアップコマンドのエラー:ディストリビューションに名前空間パッケージ'company_name'のモジュールまたはパッケージが含まれていません