簡體   English   中英

Buildout:通過Mercurial包括另一個Python項目嗎?

[英]Buildout: Including another Python project via mercurial?

我有一個名為Foo /的項目,該項目具有buildout.cfg和setup.py。 現在還有另一個名為Bar / ..的項目,它也具有buildout.cfg和setup.py。 由於Bar /依賴於各種Python模塊,因此setup.py中具有install_requires=['lxml', 'SQLAlchemy'] Foo /取決於Bar /。

但是Bar /還沒有發布。 如何將Bar /包含在Foo的擴展中,以便可以導入Bar的模塊,lxml和SQLAlchemy?

假設Bar /正在使用Mercury作為其修訂控制系統。

我的嘗試 :建立有益的配方並沒有太大作用。 只克隆庫,但不會自動獲得雞蛋在酒吧/ setup.py install_requires並添加酒吧/本身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的路徑(在parts/mr ),並且未安裝依賴項(來自parts/mr/setup.py )。

我發現解決此問題的唯一方法是通過向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

希望這可以幫助。

如果您可以簽出/克隆存儲庫,則可以像往常一樣開發python模塊:

[buildout]
...
develop = src/Bar
eggs = Bar

您正在使用水銀配方對要用作開發雞蛋的水銀配方進行水銀校驗。...那里存在巨大的循環依賴性。

擴建需要水准的配方來運行“先生”部分。 因此,它從pypi獲取配方。 它尚不知道該配方將實際下載該配方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM