本文主要是介绍python 自定义命令(entry_points)以及开发第三方库setuptools打包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
突然想知道类似django-admin、you-get这种不用Python执行的自定义命令怎么实现的的,查了一下setuptools打包时配置一下entry_points可以实现。
工程结构
setup.py代码:
#setup.pyfrom setuptools import setupsetup(name = "setuptoolsdemo",version = "1.0.0",author = "wangjinyur",author_email = "wangjinyuxxx@gmail.com",description = ("An demonstration of setuptools-demo."),url = "http://www.baidu.com",packages=['src'],entry_points={'console_scripts': ['setup-func=src.appdemo:hello_setuptools'],}
)
setup-func就是我配置的自定义命令,打包完成后直接在shell中执行 setup-func,就相当于执行appdemo模块下的hello_setuptoolsh函数。
appdemo.py代码:
def hello_setuptools():print('hello_setuptools')
执行下面命令:
python setup.py bdist_wheel
生成一堆文件:
再执行:
pip install dist/setuptoolsdemo-1.0.0-py3-none-any.whl
将自定义的setuptoolsdemo包安装到Python环境中
ipython中导入执行一下,注意导入的是src,而不是包名setuptoolsdemo
In[2]: from src.appdemo import hello_setuptools
In[3]: hello_setuptools()
hello_setuptools
shell中执行一下setup-func命令:
(python3.7.3) ➜ setup-func
hello_setuptools
可以看到成功打印出了 hello_setuptools。
参考:https://juejin.im/post/5d46eb4bf265da03ef79f7e3
官方文档太长了吧。。。
这篇关于python 自定义命令(entry_points)以及开发第三方库setuptools打包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!