0

ajax.py には、次のインポート ステートメントがあります。

import components.db_init as db

components/db_init.py には、次のインポート ステートメントがあります。

# import locals from ORM (Storm)
from storm.locals import *

そして components/storm/locals.py には、これがあります:

from storm.properties import Bool, Int, Float, RawStr, Chars, Unicode, Pickle
from storm.properties import List, Decimal, DateTime, Date, Time, Enum
from storm.properties import TimeDelta
from storm.references import Reference, ReferenceSet, Proxy
from storm.database import create_database
from storm.exceptions import StormError
from storm.store import Store, AutoReload
from storm.expr import Select, Insert, Update, Delete, Join, SQL
from storm.expr import Like, In, Asc, Desc, And, Or, Min, Max, Count, Not
from storm.info import ClassAlias
from storm.base import Storm

そのため、ajax.py でその import ステートメントを実行すると、次のエラーが発生します。

<type 'exceptions.ImportError'>: No module named storm.properties

components/db_init.py を例外なく正常に実行できます...そのため、何が起きているのかわかりません。

誰かがこの問題に光を当てることができますか?

4

2 に答える 2

2

そのパッケージ名のアイデアは、あなたが思っstorm.localsているものとは異なると思います (ほとんどの場合、components.storm.locals. __name__の上部に印刷することで確認できるstorm.localsと思います。現在のパッケージに関連しないインポートを使用する場合、パッケージ名が一致する必要があります。

相対インポートを使用すると、おそらくここで機能します。localspropertiesは同じパッケージに含まれているため、内部では次のstorm.localsことができるはずです

from properties import Bool

等々。

于 2009-07-17T21:41:32.640 に答える
1

あなたはする必要があります

  • (...)/components/storm を PYTHONPATH に追加し、
  • components/storm/locals.py で相対インポートを使用するか、
  • storm.properties の代わりにプロパティをインポートする
于 2009-07-17T21:44:38.377 に答える