Я искал, как я могу создать установщик для моего проекта Python. Я нашел хорошую альтернативу, то есть модуль py2exe. Это используется на setup.py.Python: инсталлятор с py2exe и проект с модулем OpenOPC
Но мой проект использует COM-сервер с модулем win32com в модуль OpenOPC. По этой причине, после того, как я произвожу автономный directorie с файлом EXE, этот исполняемый не работает, возвращая это исключение:
IOError: [Errno 2] No such file or directory:
'C:\\Users\\(project directory)\\dist\\lib\\shared.zip\\win32com\\gen_py\\__init__.py'
я искал больше об этом и нашел эту страницу: http://www.py2exe.org/index.cgi/Py2exeAndWin32com
Это страница учит «модели» для setup.py для включения ком-сервера в качестве модуля. Но я не понял эту «модель». Он является общим для всех серверов com и не представляет, где я должен включать модуль OpenOPC. Я попробовал несколько способов использовать эту модель как:
from distutils.core import setup
import py2exe
import sys
class Target:
def __init__(self):
self.version = version
self.company_name = author
self.copyright = license_
self.name = name
self.description = description
self.modules = ['C:\\OpenOPC\\src\\OpenOPC.py']
self.create_exe = True
self.create_dll = False
sys.argv.append('py2exe')
setup(name=name,
version=version,
author=author,
author_email=author_email,
maintainer=maintainer,
maintainer_email=maintainer_email,
url=url,
license=license_,
description=description,
long_description=long_description,
keywords=keywords,
platforms=platforms,
console=console, zipfile=zipfile,
com_server=[Target()])
К сожалению, это не сработало. Я попытался поместить некоторые другие файлы или каталоги на модули в конструктор класса целей. Кажется, что я должен разместить здесь модуль OpenOPC, если он не в другом месте.
Можете ли вы подробнее остановиться на «не работает»? Вы получаете другую ошибку при использовании этого примера? Я уверен, что я использовал COM в сценариях, которые я развернул, - я должен посмотреть, могу ли я найти пример, который я могу опубликовать. –
Последняя ошибка с использованием этого примера - просто не найти модуль. Вот и все. И я попробовал поместить некоторые другие файлы и директории из каталога OpenOPC на диск C. –
Я пробовал как этот парень и работал: https://stackoverflow.com/questions/9002097/ignoring-library-zip-in-py2exe –