python setup.py - как показать сообщение после установки
Я разрабатываю приложение PyQt5 и делаю его доступным через pip install
теперь этот pip в python3 может установить pyqt5 как зависимость. Я сделал точку входа для запуска своего пакета и сказал setup.py, что это gui_scripts.
Что я хотел бы сделать сейчас, после того, как человек печатает pip install package
, и установка завершена, отобразите сообщение для человека, говорящего о том, что теперь вы можете набрать package
в терминале загрузить приложение. Как правильно это сделать? Или я не должен этого делать?
1 ответ
Setup.py - это почти обычный скрипт на Python. Просто используйте print()
Функция в конце вашего файла setup.py. В этом примере файловой структурой является somedir / setup.py, somedir / test / и test /init.py
Простое решение
from setuptools import setup
print("Started!")
setup(name='testing',
version='0.1',
description='The simplest setup in the world',
classifiers=[
'Development Status :: 3 - Alpha',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.0',
],
keywords='setup',
author='someone',
author_email='someone@example.com',
license='MIT',
packages=['test'],
entry_points={
},
zip_safe=False)
print("Finished!")
Началось!
запуск установки
работает bdist_egg
работает egg_info
написание testing.egg-info / PKG-INFO
...
...
...
Обработка зависимостей для тестирования ==0,1
Завершена обработка зависимостей для тестирования ==0,1
Законченный!
С помощью setuptools.command.install
решение
Кроме того, вы можете создать подкласс решения setuptools.command.install. Проверьте разницу при изменении порядка install.run(self)
а также os.system("cat testing.egg-info/PKG-INFO")
в чистой настройке.
from setuptools import setup
from setuptools.command.install import install
import os
class PostInstallCommand(install):
"""Post-installation for installation mode."""
def run(self):
install.run(self)
os.system("cat testing.egg-info/PKG-INFO")
setup(name='testing',
version='0.1',
description='The simplest setup in the world',
classifiers=[
'Development Status :: 3 - Alpha',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.0',
],
keywords='setup',
author='someone',
author_email='someone@example.com',
license='MIT',
packages=['test'],
entry_points={
},
cmdclass={
'install': PostInstallCommand,
},
zip_safe=False)
Другой вариант - модуль журналирования.
Например, rasterio использует такой подход, который вы можете адаптировать к своим потребностям:
import logging
import sys
logging.basicConfig(stream=sys.stderr, level=logging.INFO)
log = logging.getLogger()
...
log.info("Your message")
sys.stderr
будет напечатан пипсом.