我在哪里获取以及如何在 Windows 上安装适用于 Python 2.7 的 _namemapper.pyd

Mah*_*esh 5 python

我在 Windows 系统上安装了 Python 2.7 和 Cheetah。以下是当我尝试将 cheetah.template 对象与 .tmpl 文件一起使用时遇到的错误。

from Cheetah.Template import Template
t = Template(file='home.tmpl')
C:\wamp\bin\Python27\lib\site-packages\Cheetah\Compiler.py:1509: UserWarning:
You don't have the C version of NameMapper installed! I'm disabling Cheetah's us
eStackFrames option as it is painfully slow with the Python version of NameMappe
r. You should get a copy of Cheetah with the compiled C version of NameMapper.
  "\nYou don't have the C version of NameMapper installed! "

from Cheetah.Template import Template
t = Template(file='home.tmpl')
print t

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\wamp\bin\Python27\lib\site-packages\Cheetah\Template.py", line 1005,
in __str__
    rc = getattr(self, mainMethName)()
  File "_wamp_www_b121pyraw_b121pycheetah_home_tmpl.py", line 89, in respond
  File "C:\wamp\bin\Python27\lib\site-packages\Cheetah\NameMapper.py", line 246,
 in valueFromSearchList
    _raiseNotFoundException(key, searchList)
  File "C:\wamp\bin\Python27\lib\site-packages\Cheetah\NameMapper.py", line 167,
 in _raiseNotFoundException
    raise NotFound(excString)
Cheetah.NameMapper.NotFound: cannot find 'firstdivcontents'
Run Code Online (Sandbox Code Playgroud)

我搜索了 _namemapper.pyd for python 2.7,但我没有得到。我发现该文件仅适用于 2.6 版本。我是否必须降级到 python 2.6,或者是否有其他方法来安装它。

还有如何安装 _namemapper.pyd 来使用 python,如果我找到它的话?

Len*_*bro 3

pyd 文件是通过编译 Package 附带的 C 文件来创建的。如果您手边有 C 编译器,那么这是在安装时完成的。如果没有,在这种情况下你会得到一个Python回退。有些软件包将拒绝安装。

对于没有 C 编译器的 Windows 用户来说,解决方案是安装预编译的 C 二进制包。Cheetah 似乎没有:http ://pypi.python.org/pypi/Cheetah/2.4.4

所以你需要安装一个 C 编译器。我听说 MinGW 是一个不错的选择。

但是,我认为这根本不是你的问题。您的实际错误似乎与此警告无关。

因此,如果您包含失败的代码,比我更习惯 Cheetah 的人可能会告诉您出了什么问题。