Я надеялся заморозить Python CLI с click
, используя PyInstaller .
Я нашел этот ответ , что делает егоработать с командами щелчка, к сожалению, это не работает для приложений с подкомандами.
У меня есть следующий код для демонстрации проблемы:
In cli.py
import sys
import click
@click.group()
def bar():
pass
@bar.command()
def baz():
click.echo('yo')
if __name__ == "__main__":
if getattr(sys, 'frozen', False):
bar(sys.argv[1:])
else:
bar()
Я запускаю следующую команду pyinstaller
: pyinstaller --noconfirm --name bar --clean "cli.py"
И получаю следующий вывод:
Traceback (most recent call last):
File "tests\bar\cli.py", line 18, in <module>
File "click\core.py", line 722, in __call__
File "click\core.py", line 696, in main
File "click\core.py", line 621, in make_context
File "click\core.py", line 1015, in parse_args
File "click\utils.py", line 259, in echo
File "click\_compat.py", line 577, in _safe_write
File "colorama\ansitowin32.py", line 40, in write
File "colorama\ansitowin32.py", line 141, in write
File "colorama\ansitowin32.py", line 169, in write_and_convert
File "colorama\ansitowin32.py", line 174, in write_plain_text
File "click\_winconsole.py", line 180, in write
File "click\_compat.py", line 63, in write
File "click\_winconsole.py", line 164, in write
OSError: Windows error 6
[173704] Failed to execute script cli
Я использую Python 2.7.13 в ОС Windows 10.
Я не могу попробовать py2exe
, cx-Freeze
, briefcase
или лайки из-за моей рабочей среды.
Кто-то еще сталкивался с этой проблемой раньше?
Я попробую с argparse проверить, не возникла ли у меня такая же проблема.