У меня есть virtualenv с некоторыми скриптами / приложениями, которые входят в комплект моего приложения.
Предположим, это выглядит примерно так:
ls /venv/bin/
activate
myscript
python
...
Когда я запускаю myscript
с
/venv/bin/python /venv/bin/myscript
или
/venv/bin/myscript
, я правильно выполняю myscript
; однако возвращенный статус выхода возвращается с 1, когда я знаю, что он успешен.
myscript
копируется в /bin
с помощью сценариев entry_point
в setup.py:
entry_points={
'console_scripts': [
'myscript=myscript.__main__:main',
],
},
Я вижу, что скопированная фактическая версия myscript
содержит дополнительный код, который может нарушить выход.
Есть ли правильный способ запуска существующих пакетов в /venv/bin
, чтобы избежать неправильных кодов выхода?
Дополнительная информация:
Сам исполняемый файл выглядит так:
from myscript.__main__ import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())