Минимизируйте файлы pyinstaller для опции --onedir - PullRequest
0 голосов
/ 05 марта 2019

Я использовал pyinstaller для «распространения» моих кодов на машины, на которых не установлен python 3.x, все в одной сети .Это отличное программное обеспечение, но даже после прочтения очень обширной документации я пытаюсь упростить создание .exe для этой цели.

В идеале я хотел бы переслать пользователям только файл .exe(из опции --onedir, а не --onefile, поскольку это было бы огромным).Мне удалось создать хук времени выполнения для поиска библиотек в сети:

ctypes.windll.kernel32.SetDllDirectoryW('W:\\Python\\dll')

, за исключением: VCRUNTIME140.dll, python37.dll и pywintypes37.dll.Что очень удобно и уже экономит много места.Тем не менее мне не удалось сделать то же самое для файлов .pyd или папок.Я попытался установить PATH во время выполнения, чтобы он указывал на внешнюю сетевую папку, но это тоже не сработало:

sys.path.append('W:\\Python\\pyd')

Другой вариант, который я рассмотрел, - поместить все файлы .pyd в папку zip (например,base_library.zip) и создайте путь к нему.Также не сработало.

Я уверен, что мне просто не хватает чего-то простого (или сложного?).Возможно, просмотрите исходный код pyinstaller, чтобы изменить там папку, но я попытался выполнить поиск по некоторым ключевым словам, но безрезультатно.

Я хотел бы подчеркнуть, что я не пытаюсь упорядочить файлы в более привлекательную папку внутрипапка 'dist', но ищите файлы в сети (это может быть предварительно предустановленная папка где-то еще на машине, где все разные программы, которые я создаю в python, могут делиться).

Кто-нибудь имел некоторыеопыт с ним и может указать мне в правильном направлении?

...