2014-12-09 2 views
0

У меня есть проект, который использует скрипты COM и Python. Раньше мы использовали «ComTypes», теперь мы используем Win32Com. Чтобы сохранить обратную совместимость, мне нужно изменить имя некоторых интерфейсов. Итак, вот что я делаюФайл python .pyc с win32com

1) Используйте утилиту «makepy» для создания файла python из моего .tlb-файла, это создает .py-файл в папке .. \ Lib \ site-packages \ win32com \ gen_py

2) Я меняю имя интерфейса, который меня интересует в изменении созданного файла python.

3) Когда я загружаю приложение, создается соответствующий файл .pyc, и все работает нормально.

Теперь я не хочу повторять это упражнение на каждой машине, где развертывается мое программное обеспечение. Поэтому через установщик я копирую файлы .py и .pyc в. \ Lib \ site-packages \ win32com \ gen_py

Но когда мое приложение запущено, оно не распознает измененный интерфейс. Ведет себя так, как будто нет файлов .py или .pyc. Все остальные интерфейсы работают, но измененное имя не работает. Динамически кажется, что создается скомпилированный python за сценой, игнорируя файл .pyc.

Если я удаляю файл .tat и .pyc в этих местах, он снова создает файл .pyc при запуске приложения. Однако он не используется, потому что мой измененный интерфейс не работает.

Если я использую шаги 1,2 и 3, все работает снова !! Я озадачен.

Пожалуйста, помогите.

ответ

0

OK. Я узнал, в чем проблема. Когда вы создаете файл python с помощью инструмента makepy, он обновляет файл dicts.dat в каталоге gen_py. Поэтому вам нужно скопировать и этот файл на другие компьютеры.

Смежные вопросы