【星海出品】python setup详细应用及解析

PYTHON设置的标准打开方式

Gentlemen and ladies!
welcome to 1999 @ Chinese Software Developer Network

python开始的认知

key简述
distutils开始于1998年python创立之初成立的标准库
setuptools是目前安装打包的标准方式
pip是目前管理包的事实标准

python从setup 文件开始

相关 write setup 文档

https://www.python.org/community/sigs/current/distutils-sig/design/
setup 一般建立在顶级目录(项目的根目录)

#来源于python.org
from distutils.core import Distribution, setup

class MyDistribution (Distribution):
    name = "mydist",
    version = "1.3.4",
    author = "Greg Ward <gward@cnri.reston.va.us>"
    description = """\
This is an example module distribution.  It provides no useful code,
but is an interesting example of the Distutils in action."""

# Dependencies
requires = { 'python': '1.5',  # I like class-based exceptions
             're': '*',        # and I love Perl-style regexps! ;-)
}
# Actual files that need to be processed and installed in some form
py_modules = ['mymod.py', 'my_othermod.py'],
ext_modules = {'myext.c': 
         {'other_c': ['extra1.c', 'extra2.c'],
                     'c_libraries': ['mylib']}
              }

setup (distclass = MyDistribution)

使用早期的版本,讲解

from distutils.core import setup

setup(
    name='m',
    version='1.0',
    discription='my project'
    author='gebiwang'
    author_email='henkuaia@python.net'
    url='https://www.python.org'
    packages=['test' ]
    )
#重点是packages
#需要根目录有test pack包,自己创一个目录包含__init__.py 的目录即可
#视觉上来说就是有个test目录,包含个__init__.py 文件,内部自定义数据描述符。

# name名字
# version 版本
# package=[] 打包列表
# url 包的主页,可以不写

使用方法

python setup.py
#理论上说,现在你可以把虚拟环境env下的site-package下的包拷贝到根目录了
#没有相关的名词空间标识符,需要python setup.py install 来获取描述器
python setup.py build
#会生成一个build目录

setup做的事情
1.running build
2.creating build\lib
3.copying test -> \build\lib
4.copying test__init__py -> \build\lib\test
5.copying #other

python setup.py sdist
#打包命令,生成gz文件 ,打包命令也支持一些二进制分发生成windows类型的。
#例如:
python setup.py bdist_msi
还支持 bdist_rpm / bdist_zip / bdist_wininst
#最新的模块支持的类型更多
from setuptools import setup
#新模块支持egg等模式,该模式也支持zip协议
例如:python setup.py bdist_egg

打包的意义
打包后会多出一个dist目录,和一个gz文件
(取决于bdist 后选择的模式,默认为gz)
#
解包后会多一个 PKG-INFO,该文件会保存txt版本的setup函数信息
#该文件打包时,还可以指定格式
例如:
python setup.py sdist --formats=zip

在linux bash 环境里,解压缩打包的好的setup文件,就可以进入该文件下的虚拟环境env,安装你自己编写定义的python包文件(目录下包含__init__的目录)

pip install test-1.0.tar.gz

然后就可以进入python env环境里就可以直接导入test模块了

python
>>> import test
my name is test

wheel模式的包
需要安装pip install wheel
python setup.py bdist_wheel

python 使用解释器帮忙,调用的是底层的命令或接口等,例如shell。
底层是编译好的代码。

python打包分发工具:setuptools

python库的打包分发
依赖包安装与版本管理
python环境限制
生成脚本
c/c++ 拓展

python setup.py sdist --formats=gztar

–formats 参数用来指定压缩格式

安装源码包有两种方法,先解压缩源码包,或者直接安装源码包。

$ python setup.py build
$ python setup.py install
$ pip install  xxx.zip 

python目前主流的二进制包格式是wheel(.whl后缀),它的前身是egg。wheel本质也还是一个压缩包,可以像像zip一样解压缩。**与源码包相比,二进制包的特点是不用再编译,也就是安装更快!**在使用wheel之前,需要先安装wheel:$ pip install wheel

安装二进制包命令

$ pip install xxx.whl
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种高级的解释型编程语言,它具有简单易学、语法简洁、面向对象、拥有丰富的第三方库等特点。Python应用广泛,包括Web开发、数据分析、人工智能、自动化测试等多个领域。 要从入门到精通Python,需要掌握以下几个方面: 1. 基本语法:学习Python的基本语法,包括变量、数据类型、条件语句、循环语句、函数等。 2. 数据结构:掌握Python中常见的数据结构,包括列表、元组、字典、集合等,了解它们的特点和使用方法。 3. 文件操作:学会使用Python读写文件,包括文本文件和二进制文件。 4. 模块和包:了解Python模块和包的概念,学会如何使用第三方库和自己编写的模块。 5. 面向对象编程:掌握Python的面向对象编程特性,包括类、对象、继承、多态等。 6. 异常处理:学会如何处理程序中的异常情况,包括try...except语句的使用。 7. 并发编程:了解Python的并发编程方式,包括多线程、多进程和协程等。 8. 数据库操作:学会使用Python操作关系型数据库,比如SQLite、MySQL等。 9. 网络编程:了解Python的网络编程,包括socket编程、HTTP协议等。 10. Web框架:掌握Python常用的Web框架,比如Django、Flask等。 学习Python需要不断实践和练习,可以通过写小项目、参加编程竞赛等方式提高自己的编程能力。同时,可以通过阅读Python相关的书籍和文档来加深自己的理解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值