2011-08-22 47 views
0

我正在尝试创建一个MoinMoin wiki的独立桌面版本,以便我可以将它分发到CDROM上供可能安装或未安装Python的用户使用。我已经尝试py2exe和bbfreeze没有运气。它们都创建一个可执行文件,但运行可执行文件,当我从都得到了同样的错误:创建独立的MoinMoin wiki可执行文件

C:\python_class\cdrom\bb-binary>wikiserver.exe 
2011-08-22 15:06:21,312 WARNING MoinMoin.log:138 load_config for "C:\python_class\cdrom\bb-binary\wikiserverlogging.conf 
" failed with "No section: 'formatters'". 
2011-08-22 15:06:21,312 WARNING MoinMoin.log:139 using logging configuration read from built-in fallback in MoinMoin.log 
module! 
Traceback (most recent call last): 
    File "<string>", line 6, in <module> 
    File "__main__.py", line 128, in <module> 
    File "__main__wikiserver__.py", line 35, in <module> 
    File "MoinMoin/script/__init__.py", line 138, in run 
    File "MoinMoin/script/__init__.py", line 248, in mainloop 
    File "MoinMoin/wikiutil.py", line 1078, in importBuiltinPlugin 
    File "MoinMoin/wikiutil.py", line 1117, in builtinPlugins 
    File "MoinMoin/util/pysupport.py", line 81, in importName 
ImportError: No module named server 

下面是setup.py脚本我用py2exe:

from distutils.core import setup 
import py2exe 
includes = ["MoinMoin"] 
excludes = [] 
packages = [] 
setup(options = { 
    "py2exe" : { 
     "includes" : includes, 
     "excludes" : excludes, 
     "packages" : packages, 
     "dist_dir" : "dist" 
     } 
    }, 
    console=["wikiserver.py"]) 

这里是setup.py脚本我用bbfreeze:

from bbfreeze import Freezer 
includes = ["MoinMoin.*"] 
excludes = [] 
f = Freezer(distdir="bb-binary", includes=includes, excludes=excludes) 
f.addScript("wikiserver.py") 
f.use_compression = 0 
f.include_py = True 
f() 

如果任何人有任何帮助或建议,我会非常感激!

谢谢, 道格

+0

没有反应?,叹气,失望。 –

回答

0

py2exe具有局限性在确定哪些模块包括,尤其是如果它们被有条件地导入。例如,

import module 

在自己的行会工作,但是,

if someCondition: 
    import module 

不会。与许多大型框架一样,MoinMoin只在需要时才导入需要使用的模块。不幸的是,你需要告诉py2exe手动添加这些缺少的模块,这将需要一些试验和错误,直到找到你需要的所有模块。

有关如何手动添加模块,请参阅here

相关问题