Python comサーバーを実装し、py2exeツールを使用して実行可能ファイルとdllを生成しました。次に、zippy32.exeを使用してdllを登録しました。登録が成功したというメッセージが表示されました。次に、.NETでそのdllへの参照を追加しようとしました。dllの場所を参照して選択しましたが、次のようなエラーメッセージボックスが表示されました:dllへの参照を追加できませんでした。ファイルにアクセスでき、有効なアセンブリまたはCOMコンポーネントであることを確認してください。サーバーのコードとセットアップスクリプトを以下に追加します。サーバーをPythonスクリプトとして実行し、遅延バインディングを使用して.netからサーバーを使用できることを述べておきます。私が見逃している、または間違っていることはありますか?助けていただければ幸いです。
ありがとう、サラ
hello.py
import pythoncom
import sys
class HelloWorld:
#pythoncom.frozen = 1
if hasattr(sys, 'importers'):
_reg_class_spec_ = "__main__.HelloWorld"
_reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER
_reg_clsid_ = pythoncom.CreateGuid()
_reg_desc_ = "Python Test COM Server"
_reg_progid_ = "Python.TestServer"
_public_methods_ = ['Hello']
_public_attrs_ = ['softspace', 'noCalls']
_readonly_attrs_ = ['noCalls']
def __init__(self):
self.softspace = 1
self.noCalls = 0
def Hello(self, who):
self.noCalls = self.noCalls + 1
# insert "softspace" number of spaces
print "Hello" + " " * self.softspace + str(who)
return "Hello" + " " * self.softspace + str(who)
if __name__=='__main__':
import sys
if hasattr(sys, 'importers'):
# running as packed executable.
if '--register' in sys.argv[1:] or '--unregister' in sys.argv[1:]:
# --register and --unregister work as usual
import win32com.server.register
win32com.server.register.UseCommandLine(HelloWorld)
else:
# start the server.
from win32com.server import localserver
localserver.main()
else:
import win32com.server.register
win32com.server.register.UseCommandLine(HelloWorld)
setup.py
from distutils.core import setup
import py2exe
setup(com_server = ["hello"])