1

buildout.cfgとsetup.pyを持つFoo/というプロジェクトがあります。現在、Bar/..と呼ばれる別のプロジェクトがあります。これにもbuildout.cfgとsetup.pyがあります。Bar /はさまざまなPythonモジュールに依存しているinstall_requires=['lxml', 'SQLAlchemy']ため、setup.pyにあります。Foo/はBar/に依存します。

しかし、Bar/にはまだリリースがありません。Barのモジュール、lxml、SQLAlchemyをインポートできるように、FooのビルドアウトにBar /を含めるにはどうすればよいですか?

Bar/がリビジョン管理システムとしてMercurialを使用していると仮定します。

私の試みビルドアウト水銀レシピはあまり効果がありません。リポジトリのクローンを作成するだけで、Bar / setup.pyのinstall_requiresの卵を自動的に取得して、Bar/自体をsys.pathに追加することはありません。

実際の例:buildout.cfgは次のようになります(Bar == Mercurialrecipeパッケージ):

[buildout]
parts = ... pyrtm ...
develop = . parts/pyrtm
eggs = pyrtm

[pyrtm]
recipe = mercurialrecipe
repository = http://bitbucket.org/srid/pyrtm

...

sys.pathにローカルで複製されたmercurialrecipe(in parts/mr)へのパスが含まれておらず、依存関係(from parts/mr/setup.py)がインストールされていないため、これは機能しません。

4

3 に答える 3

1

この問題を回避する唯一の方法は、 buildout に余分なパスを追加することです:

[buildout]
parts = ... pyrtm ...
develop = . parts/pyrtm
eggs = pyrtm

extra-paths = parts/pyrtm/src
# or wherever your pyrtm folder 
# could as well be extra-paths = pyrtm/ 
# if you your code is on same path as buildout.cfg.

[pyrtm]
recipe = mercurialrecipe
repository = http://bitbucket.org/srid/pyrtm

お役に立てれば。

于 2011-01-31T19:21:06.687 に答える
0

リポジトリをチェックアウト/クローンできる場合は、通常どおり python モジュールを開発できます。

[buildout]
...
develop = src/Bar
eggs = Bar
于 2010-01-27T23:43:45.830 に答える
-1

水銀レシピを使用して、開発卵として使用したい水銀レシピの水銀チェックアウトを作成しています....そこには巨大な循環依存があります。

Buildout は、"mr" 部分を実行するために mercurial レシピを必要とします。そのため、pypi からレシピを取得します。レシピが実際にレシピをダウンロードするかどうかはまだわかりません。

于 2010-01-28T09:28:57.670 に答える