【问题标题】:Why can't I import this Zope component in a Python 2.4 virtualenv?为什么我不能在 Python 2.4 virtualenv 中导入这个 Zope 组件?
【发布时间】:2009-07-21 20:50:12
【问题描述】:

我正在尝试使用 plone.app.blob 和 repoze 安装 Plone 3.3rc4,但到目前为止我没有尝试过任何工作。我尝试将 repoze.zope2、Plone 和 plone.app.blob 安装到 virtualenv 中。我在 virtualenv 的 site-packages 目录中有 this version of DocumentTemplate,我正在尝试让它在 RHEL5 中运行。

由于某种原因,当我尝试在这种环境中运行 paster serve etc/zope2.ini 时,Python 会给出消息 ImportError: No module named DT_Util?目录中有DT_Util.py__init__.py也有,它所依赖的C模块也有。我怀疑在导入 C 扩展时存在一些循环依赖或失败。当然,这个模块可以在正常的 Zope 安装中工作......

>>> import DocumentTemplate
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "DocumentTemplate/__init__.py", line 21, in ?
  File ".../lib/python2.4/site-packages/DocumentTemplate/DocumentTemplate.py", line 112, in ?
    from DT_String import String, File
  File ".../lib/python2.4/site-packages/DocumentTemplate/DT_String.py", line 19, in ?
    from DocumentTemplate.DT_Util import ParseError, InstanceDict
ImportError: No module named DT_Util

【问题讨论】:

  • 你为什么不跟进你自己的问题呢? -1
  • 我确实编辑了问题以使其更清楚。我不确定这是一种合理的安装方法。我尝试了很多不同的构建,但无法让 plone.app.blob 和 repoze 同时工作。

标签: python virtualenv zope


【解决方案1】:

我必须说我怀疑 Zope 的 DocumentTemplate 是否可以独立运行。欢迎您尝试。 :-)

注意DT_Util imports C extensions:

from DocumentTemplate.cDocumentTemplate import InstanceDict, TemplateDict
from DocumentTemplate.cDocumentTemplate import render_blocks, safe_callable
from DocumentTemplate.cDocumentTemplate import join_unicode

您需要确保已编译这些内容。我的猜测是导入 cDocumentTemplate 模块失败,因此导入 DT_Util 失败。

【讨论】:

  • 已编译但还是失败了。
  • 那些 C 扩展本身可以很好地导入吗?尝试导入 DocumentTemplate.cDocumentTemplate。
  • 不,如果我尝试from DocumentTemplate import cDocumentTemplate,我会收到相同的ImportError: No module named DT_Util 消息。
猜你喜欢
  • 1970-01-01
  • 2015-08-16
  • 1970-01-01
  • 2016-01-21
  • 2022-07-25
  • 1970-01-01
  • 1970-01-01
  • 2018-05-19
  • 1970-01-01
相关资源
最近更新 更多