У меня есть простой проект Python для командной строки со следующей структурой
project_main/
- README.md
- requirements.txt
- setup.py
- project_main/
- __init__.py
- controller.py
- tests/
- __init__.py
- test_cases.py
- test_suite.py
Я запускаю контрольные примеры, используя приведенную ниже команду, и все тесты проходят ОК
python -m unittest
Логика приложения работает отлично.
Теперь мне нужно развернуть этот код в любой системе с помощью одного скрипта «setup.py».Содержимое файла «setup.py» указано ниже
from setuptools import setup, find_packages
import os
import sys
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
setup(
name='sample',
version='1.0.0',
description='sample deployment'
packages=find_packages(),
test_suite="tests.test_suite.main_suite",
entry_points={
'console_scripts': [
'demoCommand=project_main.controller:main'
]
}
)
Когда я запускаю его с помощью приведенной ниже команды, он запрашивает разрешения администратора для пути установки по умолчанию.Кроме того, даже в случае сбоя test_cases приложение будет установлено.
python3 setup.py install
- Я хотел бы знать, как обеспечить установку всех пакетов в файле needs.txt при запуске файла setup.py?
- Как остановить установку, если контрольные примеры не пройдены?
- Как установить приложение в пользовательскую папку без прав администратора?
РЕДАКТИРОВАТЬ: Добавление частичного релевантного вывода настройки.py команда установки
copying build\lib\tests\__init__.py -> build\bdist.win32\egg\tests
byte-compiling build\bdist.win32\egg\tests\main_test_suite.py to main_test_suite.cpython-37.pyc