私は問題なくPlone4.2を使用していますが、次のPlone4.3で自分のサイトをテストしたいと思っています。Plone 4.3a2を使用するようにビルドアウトを編集し、ビルドアウトを再実行しました。
今私は得るImportError: cannot import name Schema
。
これが私のextendsセクションのようになりました(新しいPlone 4.3a2URLに置き換えられたPlone4.2へのコメントアウトされた古い参照を含めました)。
extends =
deco.cfg
toolbar.cfg
users-ports.cfg
base.cfg
supervisor-cache-balancer.cfg
products.cfg
# versions.cfg
# http://dist.plone.org/release/4.2-latest/versions.cfg
http://dist.plone.org/release/4.3a2/versions.cfg
pinnedversions.cfg
ビルドアウトを再実行し、を使用してインスタンスを起動した後bin/client1 fg
次のトレースバックがあります。
from Products.ATContentTypes.criteria import _criterionRegistry
File "/home/plone/buildout-cache/eggs/Products.ATContentTypes-2.1.7-py2.7.egg/Products/ATContentTypes/criteria/__init__.py", line 123, in <module>
from Products.ATContentTypes.criteria.relativepath import ATRelativePathCriterion
File "/home/plone/buildout-cache/eggs/Products.ATContentTypes-2.1.7-py2.7.egg/Products/ATContentTypes/criteria/relativepath.py", line 7, in <module>
from Products.Archetypes.public import Schema, DisplayList
ImportError: cannot import name Schema
私はArchetypesとATContentypesをピン留めして、ビルドアウトが古いバージョン(Plone 4.2で使用されているものなど)を使用するように、pinnedversions.cfgファイル(他のすべての後に呼び出される)に以下を追加しようとしました。
[versions]
Products.ATContentTypes = 2.1.7
Products.Archetypes = 1.7.14
それでも、それ以上のことがあるようです 。ImportError:名前をインポートできませんスキーマエラーが続く。pinnedversions.cfgファイルで使用しているバージョンが機能しないかどうかは関係ありません。
私のすべての調査は、これは「うまくいく」はずだと示唆しています。これが私がこれまでに調べたものです:
bin/client1 debug
トラブルシューティングに使用して、私はそれを発見しましたfrom Products.Archetypes import Schema
、from Products.Archetypes.Schema import Schema
そしてfrom Products.Archetypes.atapi import Schema
すべてが機能します。Products.Archetypes public.pyファイルを開くと、次の行が含まれています。
from Products.Archetypes.atapi import *
私の理解では、そのような行はpublic.pyからスキーマをインポートすることを可能にするでしょう