cx_Freeze, как избежать установки пакетов в папке lib? - PullRequest
0 голосов
/ 12 декабря 2018

Когда я собираю установщик и устанавливаю приложение, оно устанавливает все пакеты в папке lib, тогда как мой код выбирает импорт из текущего каталога, а не lib.

Как мне сделатьпакеты должны находиться в том же каталоге, что и исполняемый файл?

Ниже приведен мой скрипт:

from cx_Freeze import setup, Executable 

buildOptions = dict(excludes = ["tkinter"], includes =["idna.idnadata"], optimize=1)

setup(name = "SoftwareGateway" , 
      version = "0.1" , 
      description = "" , 
      options =dict(build_exe = buildOptions),
      executables = [Executable("main.py", base = base)])

1 Ответ

0 голосов
/ 12 декабря 2018

Насколько я понимаю, то, что вы просите, не может быть сделано с cx_Freeze 5.1.1 (текущая версия) или 5.1.0.

Вы можете использовать предыдущую стабильную версию cx_Freeze 5.0.2, которая не замораживает пакеты в подкаталоге lib.Чтобы перейти на эту cx_Freeze версию, запустите

python -m pip install cx_Freeze==5.0.2

в терминале cmd.

Но я на самом деле не понимаю, почему наличие пакетов должно быть непреодолимой проблемойзаморожены в подкаталог lib, за исключением очень особых случаев.Я бы посоветовал вам разрешить вашему коду выбирать импорт из подкаталога lib, используя свойство пакетов __file__ вместо изменения версии cx_Freeze.

...