2011-01-19 183 views
4

我的Windows 2.7系统上安装了Python 2.7与Cheetah。下面是我得到的错误,当我尝试使用.tmpl文件中的cheetah.template对象。我在哪里可以得到以及如何在Windows上为Python 2.7安装_namemapper.pyd

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' 

我搜索了python 2.7的_namemapper.pyd,但我没有得到。我发现只有2.6以上的文件。 我必须降级到Python 2.6,还是有其他方法来安装它。

以及如何安装_namemapper.pyd与蟒蛇的工作,如果在所有我找到它?

回答

3

的PYD文件由编译附带套餐的C文件创建的。这是在安装时完成的,如果你有一个方便的C编译器。如果没有,你在这种情况下会得到一个Python回落。有些软件包会拒绝安装。

没有C编译器的Windows人的解决办法是安装预编译的C二进制软件包。猎豹似乎没有任何的:http://pypi.python.org/pypi/Cheetah/2.4.4

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

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

所以,如果你有你的失败代码,人们更习惯于猎豹比我大概可以告诉你,什么是错的。

-1

文件C:\Python27\Lib\site-packages\Cheetah\Compiler.py

评论开始行#1506以下行摆脱错误的。

#  if not NameMapper.C_VERSION: 
#   if not sys.platform.startswith('java'): 
#    warnings.warn(
#     "\nYou don't have the C version of NameMapper installed! " 
#     "I'm disabling Cheetah's useStackFrames option as it is " 
#     "painfully slow with the Python version of NameMapper. " 
#     "You should get a copy of Cheetah with the compiled C version of NameMapper." 
#     ) 
+2

这只是一个警告,将使用非C版本的namemapper。在我看来,注释掉这个警告是相当愚蠢的建议 - 你可以简单地忽略这个警告,使用python版本的namemapper会使性能变差。所以降低了这个答案。 – DEzra 2013-04-15 18:15:59

-1

我做namemapper蟒蛇文件的副本,我解决我的问题只是让从_namemapper.pyd_namemapper.so文件扩展名的修改和它的工作就好了。

我不能肯定这是一个正确的做法,但为我工作。

相关问题