Если вы можете гарантировать, что
- пакет всегда устанавливается из исходного кода, а не из бинарного диска, и
- пользователь использует опцию
-v
для pip install
,
вы можете вывести текст в свой setup.py
скрипт.
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='[email protected]',
license='MIT',
packages=['test'],
entry_points={
},
zip_safe=False)
print("Finished!")
Начал!
выполняется install
выполняется 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='[email protected]',
license='MIT',
packages=['test'],
entry_points={
},
cmdclass={
'install': PostInstallCommand,
},
zip_safe=False)
person
Jose Raul Barreras
schedule
13.08.2016