Я создал простое 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