python3.2プロジェクトからcxfreezeバイナリを実行すると、次のランタイムエラーが発生します。
/project/dist/project/distutils/__init__.py:13: UserWarning: The virtualenv distutils package at %s appears to be in the same location as the system distutils?
Traceback (most recent call last):
File "/home/chrish/.virtualenvs/project/lib/python3.2/distutils/__init__.py", line 19, in <module>
import dist
ImportError: No module named dist
distutils
これに対応して、cxfreeze出力の欠落しているモジュールセクションにいくつかのエントリがあります。
? dist imported from distutils
? distutils.ccompiler imported from numpy.distutils.ccompiler
? distutils.cmd imported from setuptools.dist
? distutils.command.build_ext imported from distutils
? distutils.core imported from numpy.distutils.core
...
私は、distutilsをモジュールとして強制的に含めることを試みました。これは、メインのpythonファイルにインポートすることと、cxfreezesetup.py
に次のように追加することの両方によって行われました。
options = {"build_exe": {"packages" : ["distutils"]} },
どちらのアプローチも機能しませんでした。どういうわけかvirtualenvを壊したようです[distutilsは基本的であり、distutilsの場所に関する警告であるため]、クリーンなvirtualenvで繰り返すと、問題が再現されました。
$VIRTUAL_ENV/build/cx-freeze/setup.py install
cx-freezeはpipに正しくインストールされないため、実行してインストールしたことは注目に値するかもしれません。