私のメイン スクリプトでは、これを MyScript.py と呼びましょう。次のようにします。
import psyco
psyco.full()
そして、私の setup.py は次のようになります。
from distutils.core import setup
import py2exe, sys, os, glob
sys.argv.append('py2exe')
import psyco #speed up compilation
psyco.full()
def find_data_files(source,target,patterns):
"""Locates the specified data-files and returns the matches
in a data_files compatible format.
source is the root of the source data tree.
Use '' or '.' for current directory.
target is the root of the target data tree.
Use '' or '.' for the distribution directory.
patterns is a sequence of glob-patterns for the
files you want to copy.
"""
if glob.has_magic(source) or glob.has_magic(target):
raise ValueError("Magic not allowed in src, target")
ret = {}
for pattern in patterns:
pattern = os.path.join(source,pattern)
for filename in glob.glob(pattern):
if os.path.isfile(filename):
targetpath = os.path.join(target,os.path.relpath(filename,source))
path = os.path.dirname(targetpath)
ret.setdefault(path,[]).append(filename)
return sorted(ret.items())
setup(
name="MyScript",
version="1.0",
description="a script that does something",
author="Keelx",
data_files=find_data_files('.','',[
'gfx/*',
'data/*',
]),
options={'py2exe': {'bundle_files': 1,'optimize': 2}},
windows=[{'script': "MyScript.py"}],
zipfile=None,
)
実行可能ファイル、win9x 実行可能ファイル、実行可能ファイルの隣に gfx および data フォルダーを含む 'dist' フォルダーを作成します。ただし、実行すると、次のようなログが表示されます。
トレースバック (最新の呼び出しが最後): ファイル "MyScript.py"、16 行目、ファイル "zipextimporter.pyo"、82 行目、load_module ファイル "psyco__init__.pyo"、64 行目、WindowsError: [エラー 3] システム指定されたパスが見つかりません: 'C:\Documents and Settings\Keelx\Desktop\MyScriptFolder\dist\MyScript.exe\psyco\_psyco.pyd'
psyco モジュールが実行可能ファイルに含まれていないようです。私は検索してきましたが、py2exeにpsycoをコピーさせるための有効な解決策が見つかりませんでした。
また、「py2exe を使用しないでください」という方針に沿って解決策を投稿することはお控えください。
ここで私を助けてくれる人は誰でも、事前に感謝します.