私は現在pyInstallerを調べています。今のところ py2exe を使用していますが、ターゲットとするすべてのプラットフォームに対して 1 つのコンパイラのみを使用するとよいでしょう。私の py2exe setup.py は次のようになります。
from distutils.core import setup
import py2exe
setup(
name='agent',
description='Service Test',
version='1.00.00',
service=['agent'],
console=['agent.py'],
zipfile=None,
options={ "py2exe":{
"includes":"win32service,win32serviceutil,win32event,servicemanager,autobahn",
"packages": 'twisted, autobahn',
'bundle_files': 1
},
},
)
Windows サービスをコンパイルできましたが、twisted を使い始めるとすぐに失敗します。私がpyInstallerでコンパイルするために使用したコマンドライン:
python PyInstaller.py --onefile c:\path\here\agent.py
python PyInstaller.py --hidden-import=twisted --onefile c:\path\here\agent.py
サービスをインストールしようとすると発生するエラー
agent.exe?175104\twisted\python\modules.py:758:
UserWarning: C:\dist\path\agent.exe?175104 (for module twisted.web.util) not in path importer cache (PEP 302 violation - check your local configuration).