1

私のメイン スクリプトでは、これを 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 を使用しないでください」という方針に沿って解決策を投稿することはお控えください。

ここで私を助けてくれる人は誰でも、事前に感謝します.

4

1 に答える 1

0

py2exeエラーを追跡することは、私には芸術のように思えます。そうは言っても、私は少なくとも試してみる何かを提供します。psyco対応のPythonスクリプトをpy2exeして、セットアップのインクルード部分に入れました。それはあなたのセットアップと私の古いものの間で異なって見える唯一の部分です。

options = {'py2exe': {'packages': [ 'IPython'],
                      'includes': ["psyco"],
                     }
          }

また、最適化を有効にすることもできませんでした。それは常にランダムエラーを引き起こしました。私の経験ではそれを省くのが最善です。これらのエラーを引き起こしたのはmatplotlibだったと思います。

これがお役に立てば幸いです、乾杯、

于 2011-11-23T04:16:14.270 に答える