Я создал простое приложение командной строки python3.7.1, используя click в виртуальной среде conda, которое отлично работает при работе в качестве модуля python -m.
Чтобы создать исполняемый файл с одной командой (двоичный), который можно отправить куда-нибудь в файловой системе, которая предпочтительно не зависит от виртуальной среды python/conda.
Обратите внимание, что этот вопрос, вероятно, тесно связан с моим полным непониманием setuptools (я прочитал документы).
Структура проекта:
python_clean_repo/
├── README.md
├── conda-environment.yaml
├── setup.py
├── tests
│ └── test_basic.py
└── yourpackage
├── configs
│ ├── app_config.yaml
│ └── config.py
├── main.py
└── scripts
└── cmdline.py
При запуске с опцией -m все работает как положено:
$ python -m yourpackage.scripts.cmdline
Hello World!
here i am in main
config is {'key': 'value'}
Упаковка выглядит успешно завершенной:
$ pip install -e .
...
Successfully installed python-clean-repo
Итак, теперь у меня есть исполняемый файл в моей виртуальной среде с именем yourscript (это имя точки входа, указанное в setup.py), который работает именно так, как я и ожидал:
$ yourscript
Hello World!
here i am in main
config is {'key': 'value'}
Как мне «доставить» этот исполняемый файл, который теперь напрямую связан с моей виртуальной средой? Я тоже пробовал python setup.py sdist, но почему-то созданный tar.gz не содержит всего (нет включенных .py модулей, просто куча .txt файлов типа entry_points.txt и requires.txt
«Дубликат» предложения ссылается на pyinstaller, который, похоже, не устанавливается в мою среду conda (пробовал как с pip, так и с conda). Я до сих пор недостаточно хорошо разбираюсь в процессе сборки setup.py, чтобы полностью понять, действительно ли это то, что мне нужно для выполнения работы, и я просто не понимаю, как использовать как.






Возможный дубликат Как сделать скрипт Python автономным исполняемым файлом для запуска без ЛЮБОЙ зависимости?