0

Python がインストールされているかどうかに関係なく、CDROM で配布できるように、MoinMoin wiki のスタンドアロンのデスクトップ バージョンを作成しようとしています。py2exe と bbfreeze の両方を試しましたが、うまくいきませんでした。どちらも実行可能ファイルを作成しますが、その実行可能ファイルを実行すると、両方から同じエラーが発生します。

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

py2exe に使用した setup.py スクリプトは次のとおりです。

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"])

bbfreeze に使用した setup.py スクリプトは次のとおりです。

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()

誰かに助けや提案があれば、とても感謝しています!

ありがとう、ダグ

4

1 に答える 1

0

py2exe には、特に条件付きでインポートされる場合に、どのモジュールを含めるかを特定する際に制限があります。例えば、

import module

独自の行で動作しますが、

if someCondition:
    import module

しません。多くの大規模なフレームワークでよくあることですが、MoinMoin は必要なときに必要なモジュールのみをインポートします。残念ながら、不足しているこれらのモジュールを手動で含めるように py2exe に指示する必要があります。これには、必要なモジュールがすべて見つかるまで試行錯誤が必要です。

モジュールを手動で含める方法については、こちらを参照してください。

于 2012-07-06T21:32:07.650 に答える