Plone/SQLAlchemy(?) - 如何在子包的模块中导入 python 包(即 sqlalchemy)?

Plone/SQLAlchemy(?) - How can I import a python package (i.e. sqlalchemy) in a module in a subpackage?

我正在尝试在子包的模块中导入 sqlalchemy。

这是我的文件夹布局

PloneInstance
    my.package
        my
            package
                subpackage

在根文件夹的buildout.cfg文件里,我加了"sqlalchemy"蛋

在my.package中,在configure.zcml中,我添加:

在子包中,我有一个空白的 __init__.py 文件,一个 configure.zcml 文件和一个名为 mymodule.py

的文件

在 mymodule.py 我有一行用于导入 sqlalchemy

import sqlalchemy

不幸的是,我在尝试运行实例时遇到错误:

ImportError: No module named sqlalchemy

我假设我错过了一步。如何正确导入 python 包?

提前谢谢你。如果我的术语不正确,我深表歉意。

编辑: 我从中导入的有问题的模块原来是 zope.sqlalchemy。 我不小心忽略了这一点,因为在将文件移动到子包之前,zope.sqlalchemy 的导入语句在没有将 zope.sqlalchemy 添加到构建的 eggs 部分的情况下工作。

查看包顶层目录中的 setup.py 文件。你会发现这样的部分:

      install_requires=['setuptools',
         # -*- Extra requirements: -*-
      ],

用逗号分隔的字符串列表代替“额外要求”注释,指定包的要求。您甚至可以指定版本。

不要将标准 Plone 包添加到列表中。他们被认为是理所当然的。

重新运行 指定您的要求后扩建。结果是当您启动 Plone 时,新的安装要求将被添加到您的 Python 环境中。