gpt4 book ai didi

python setup.py - 安装后如何显示消息

转载 作者:太空狗 更新时间:2023-10-30 01:27:26 27 4
gpt4 key购买 nike

我正在开发一个 PyQt5 应用程序并通过 pip install 提供它,现在 python3 中的 pip 可以安装 pyqt5 作为依赖项。我做了一个入口点来启动我的包,并告诉 setup.py 它是一个 gui_scripts。

我现在想做的是,在用户输入 pip install package 并且安装完成后,向用户显示一条消息,告知您现在可以输入 package 在终端中加载应用程序。这样做的正确方法是什么?或者我不应该这样做?

最佳答案

如果你能保证

  • 软件包总是从源代码分发安装,而不是二进制轮,并且
  • 用户使用 -v 选项进行 pip install,

您可以在 setup.py 脚本中输出文本。

setup.py 几乎是一个普通的 Python 脚本。只需使用 setup.py 文件末尾的 print() 函数即可。在此示例中,文件结构为 somedir/setup.pysomedir/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!")

Started!
running install
running bdist_egg
running egg_info
writing testing.egg-info/PKG-INFO
...
...
...
Processing dependencies for testing==0.1
Finished processing dependencies for testing==0.1
Finished!

使用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)

关于python setup.py - 安装后如何显示消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38933402/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com