博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
『Python』setup.py简介
阅读量:5962 次
发布时间:2019-06-19

本文共 2760 字,大约阅读时间需要 9 分钟。

setup.py应用场合

网上见到其他人这样介绍:

假如我在本机开发一个程序,需要用到python的redis、mysql模块以及自己编写的redis_run.py模块。我怎么实现在服务器上去发布该系统,如何实现依赖模块和自己编写的模块redis_run.py一起打包,实现一键安装呢?同时将自己编写的redis_run.py模块以exe文件格式安装到python的全局执行路径C:\Python27\Scripts下呢?在这种应用场景下,pip工具似乎派不上了用场,只能使用python的构建工具setup.py了,使用此构建工具可以实现上述应用场景需求,只需在 setup.py 文件中写明依赖的库和版本,然后到目标机器上使用python setup.py install安装。

可以看到其目的就是方便我们安装代码:可以一体化的安装依赖包,并记录生成包相关信息,方便大规模部署,故对于开发者而言,编写python的第三方库,最重要的事情之一就是编写setup.py了。

使用setup例子

我们建立一个名为demo的空白文件夹,在里面创建setup.py文件,录入如下代码:

from setuptools import setup, find_packagessetup(	name = "demo",	version = "0.1",	packages = find_packages(),	)

 运行命令:

python setup.py bdist_egg

 此时查看目录树:

│  setup.py

├─build
│  └─bdist.win-amd64
├─demo.egg-info
│      dependency_links.txt
│      PKG-INFO
│      SOURCES.txt
│      top_level.txt
└─dist
        demo-0.1-py3.6.egg

其中dist目录下即为打包好的egg文件,可以将尾缀改为zip并解压,内部是一系列自动生成的文件,可以自行查阅功能,

│  demo-0.1-py3.6.zip

└─EGG-INFO
        dependency_links.txt
        PKG-INFO
        SOURCES.txt
        top_level.txt
        zip-safe

如果我们的生成命令使用的是:

python setup.py sdist

生成的将会是tar.gz文件,解压后直接包含setup.py文件,我们使用python setup.py install运行该文件可以直接将包拷贝到python工作目录下,方便直接调用。

在项目中,我们最终可以在anaconda目录中找到如下文件,

其对应的安装选项如下,可以一窥setup的效用,

setup(    name='mask-rcnn',    version='2.1',    url='https://github.com/matterport/Mask_RCNN',    author='Matterport',    author_email='waleed.abdulla@gmail.com',    license='MIT',    description='Mask R-CNN for object detection and instance segmentation',    packages=["mrcnn"],  # setup.py同级目录下文件夹mrcnn中含有__init__.py文件    install_requires=install_reqs,    include_package_data=True,    python_requires='>=3.4',    long_description="""This is an implementation of Mask R-CNN on Python 3, Keras, and TensorFlow. The model generates bounding boxes and segmentation masks for each instance of an object in the image. It's based on Feature Pyramid Network (FPN) and a ResNet101 backbone.""",    classifiers=[        "Development Status :: 5 - Production/Stable",        "Environment :: Console",        "Intended Audience :: Developers",        "Intended Audience :: Information Technology",        "Intended Audience :: Education",        "Intended Audience :: Science/Research",        "License :: OSI Approved :: MIT License",        "Natural Language :: English",        "Operating System :: OS Independent",        "Topic :: Scientific/Engineering :: Artificial Intelligence",        "Topic :: Scientific/Engineering :: Image Recognition",        "Topic :: Scientific/Engineering :: Visualization",        "Topic :: Scientific/Engineering :: Image Segmentation",        'Programming Language :: Python :: 3.4',        'Programming Language :: Python :: 3.5',        'Programming Language :: Python :: 3.6',    ],    keywords=["image instance segmentation object detection mask rcnn r-cnn tensorflow keras", ])

其他资料

官方文档:

 

转载地址:http://cnjax.baihongyu.com/

你可能感兴趣的文章
android textview字体加下划线
查看>>
springMVC 定时任务
查看>>
Mint8(ubuntu16.04) 搭建微信Web开发工具
查看>>
PostgreSQL数据类型-数据类型简介和布尔类型
查看>>
PostgreSQL数据类型-二进制数据和字符串数据类型与字符串函数
查看>>
shell 基础
查看>>
twisted的LineReceiver的接口定义
查看>>
浅解用PHP实现MVC
查看>>
MySQL常用操作
查看>>
Yxcms网站管理系统安装
查看>>
字符串,链表,树
查看>>
Nginx错误日志(error_log)配置及信息详解
查看>>
Highcharts 学习笔记
查看>>
高性能python编程之协程
查看>>
PHP编译过程中常见错误信息的解决方法
查看>>
redis服务端及php客户端安装方法
查看>>
定时删除文件
查看>>
mysql主从同步
查看>>
springmvc 高级3 之 统一异常处理
查看>>
我的友情链接
查看>>