当前位置: 首页 > news >正文

网天下网站建设wordpress手机管理APP

网天下网站建设,wordpress手机管理APP,网站背景图片素材,淘宝客做的最好的网站第十八章 程序打包 Setuptools和较旧的Distutils都是用于发布Python包的工具包#xff0c;能够使用Python轻松地编写安装脚本。这些脚本可用于生成可发布的归档文档#xff0c;供用户用来编译和安装编写库。 Setuptools并非只能用于创建基于脚本的Python安装程序#xff0…第十八章 程序打包 Setuptools和较旧的Distutils都是用于发布Python包的工具包能够使用Python轻松地编写安装脚本。这些脚本可用于生成可发布的归档文档供用户用来编译和安装编写库。 Setuptools并非只能用于创建基于脚本的Python安装程序还可用于编译扩展。 通过将其与扩展py2exe和py2app结合起来使用还可创建独立的Windows和macOS可执行程序。 Setuptools基础 如果没有安装Setuptools可使用pip安装 简单的Setuptools安装脚本setup.py 请将代码所示的脚本存储为setup.py这适用于所有的Setuptools安装脚本并确保其所在目录包含简单模块beyond.py。 from setuptools import setupsetup(nameBeyond,version1.0,descriptionA simple example,authorbeyondyanyu,py_modules[beyond])使用这个简单的脚本 python setup.py将出现类似于下面的输出 usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]or: setup.py --help [cmd1 cmd2 ...]or: setup.py --help-commandsor: setup.py cmd --helperror: no commands supplied要获得更多的信息可使用开关--help或--help-commands。 执行命令build让Setuptools行动起来。 python setup.py build将出现类似于下面的输出 running build running build_py creating build creating build/lib copying beyond.py - build/libSetuptools创建了一个名为build的目录其中包含子目录lib。同时将将beyond.py复制到了这个子目录中。目录build相当于工作区Setuptools在其中组装包以及编译扩展库等。安装时不需要执行命令build因为当你执行命令install时如果需要命令build会自动运行。 在上述这个示例中命令install将把模块beyond.py复制到PYTHONPATH指定的特定目录中。这应该不会带来风险但如果你不想弄乱系统应该将其删除。 安装install这个模块 python setup.py install输出应该非常多其末尾的内容类似于下面这样 Installed /path/to/python3.5/site-packages/Beyond-1.0-py3.5.egg Processing dependencies for Beyond1.0 Finished processing dependencies for Beyond1.0 byte-compiling在安装过程中Setuptools创建了一个.egg文件这是一个独立的Python包。 在这个脚本中只使用了Setuptools指令py_modules。如果要安装整个包可以类似的方式列出包名使用指令packages。 打包 编写让用户能够安装模块的脚本setup.py后就可使用它来创建归档文件了。 这里主要介绍如何创建.tar.gz文件 要创建源代码归档文件可使用命令sdist表示source distribution。 python setup.py sdist如果执行上述命令可能出现大量的输出其中包括一些警告。完全可以对这些警告置若罔闻但也可在脚本setup.py中添加author_email类似于选项author并在当前目录中添加文本文件README.txt。 现在除目录build外应该还有一个名为dist的目录。在这个目录中有一个名为Beyond-1.0.tar.gz的文件。 可将其分发给他人而对方可将其解压缩再使用脚本setup.py进行安装。 不想生成.tar.gz文件还有其他几种分发格式可供使用。要设置分发格式可使用命令行开关--formats这个开关为复数形式表明你可指定多种用逗号分隔的格式这样将一次性创建多个归档文件。要获悉可使用的格式列表可给命令sdist指定开关--help-formats。 编译扩展 假设这个源代码文件palindrome2.c位于当前目录中第17章中程序palindrome的源代码则可使用下面的setup.py脚本来编译并安装它 一个回文检查示例palindrome2.c #include Python.hstatic PyObject *is_palindrome(PyObject *self, PyObject *args) {int i, n;const char *text;int result;if (!PyArg_ParseTuple(args, s, text)) {return NULL;}nstrlen(text);result 1;for (i 0; i n/2; i) {if (text[i] ! text[n-i-1]) {result 0;break;}}return Py_BuildValue(i, result); /* i表示一个整数*/}static PyMethodDef PalindromeMethods[] {/* 方法/函数列表*/{is_palindrome, is_palindrome, METH_VARARGS, Detect palindromes},{NULL, NULL, 0, NULL} };static struct PyModuleDef palindrome {PyModuleDef_HEAD_INIT,palindrome, /* 模块名 */, /* 文档字符串 */-1, /*存储在全局变量中的信号状态 */PalindromeMethods };/* 初始化模块的函数*/ PyMODINIT_FUNC PyInit_palindrome(void) {return PyModule_Create(palindrome); } setup.py脚本 from setuptools import setup, Extensionsetup(namepalindrome,version1.0,ext_modules [Extension(palindrome, [palindrome2.c])] )如果使用这个脚本运行命令install将自动编译扩展模块palindrome再安装它。 这里没有指定一个模块名列表而是将参数ext_modules设置为一个Extension实例列表。构造函数Extension将一个名称和一个相关文件列表作为参数 如果只想就地编译扩展在大多数UNIX系统中这都将在当前目录中生成一个名为palindrome.so的文件可使用如下命令 python setup.py build_ext --inplace如果安装了SWIG参见第17章可让Setuptools直接使用它 代码palindrome.c的源代码显然比包装后的版本简单得多。能够让Setuptools使用SWIG并直接将其作为Python扩展确实非常方便。 为此需要做的非常简单只需将接口文件.i文件palindrome.i的名称加入到Extension实例的文件列表中即可。 palindrome.c的源代码 #include string.h int is_palindrome(char *text) {int i, nstrlen(text);for (i 0; I n/2; i) {if (text[i] ! text[n-i-1]) return 0;}return 1; } 接口文件palindrome.i %module palindrome%{ #include string.h %}extern int is_palindrome(char *text);Extension实例的文件列表 from setuptools import setup, Extensionsetup(namepalindrome,version1.0,ext_modules [Extension(_palindrome, [palindrome.c,palindrome.i])])如果用刚才的命令build_ext可能还要加上开关–inplace运行这个脚本也将生成一个.so文件或与之等价的文件但这次无需自己编写包装代码。 这个扩展指定了名称_palindrome因为SWIG将创建一个名为palindrom.py的包装器而这个包装器将通过名称_palindrome导入一个C语言库。 使用py2exe创建可执行程序 py2exe是Setuptools的一个扩展可通过pip来安装它能够创建可执行的Windows程序.exe文件。 py2exe包可用来创建带GUI参见第12章的可执行文件。 print(Hello, world!) input(Press enter)创建一个空目录再将这个文件hello.py放到这个目录中然后创建一个类似于下面的setup.py文件 beyond.py from setuptools import setupsetup(nameBeyond,version1.0,descriptionA simple example,authorbeyondyanyu,py_modules[beyond])setup.py from distutils.core import setup import py2exesetup(console[beyond.py])接着运行这个脚本 python setup.py py2exe这将创建一个控制台应用程序beyond.exe还将在子目录dist中创建其他几个文件。 有关py2exe的工作原理和高级用法的详细信息可以查阅py2exe官网。 小结 概念解释SetuptoolsSetuptools工具包让你能够编写安装脚本。根据约定这种安装脚本被命名为setup.py。使用这种脚本可安装模块、包和扩展。Setuptools的命令可使用多个命令来运行setup.py脚本如build、build_ext、install、sdist和bdist。编译扩展可使用Setuptools来自动编译C语言扩展并让Setuptools自动确定Python安装位置以及该使用哪个编译器。还可让它自动运行SWIG。可执行的二进制文件Setuptools扩展py2exe可用来从Python程序创建可执行的Windows二进制文件以及其他一些文件可使用安装程序方便地安装。无需单独安装Python解释器就可运行这些.exe文件。在macOS中扩展py2app提供了与py2exe类似的功能。 本章介绍的新函数 函数描述setuptools.setup(…)在脚本setup.py中使用关键字参数配置Setuptools
http://www.pierceye.com/news/950308/

相关文章:

  • 高端品牌网站建设明细报价报青岛市公共资源交易网
  • 余姚 网站建设济南网站开发薪酬
  • 一流高职院校建设工作网站野花香社区在线观看播放
  • 大连建设科技网站绿色主题 wordpress
  • 外网访问不了内网建设的网站做网站电销
  • 桂平市住房和城乡建设局网站杭州app定制公司
  • 免费做金融网站自己做网站想更换网址
  • 浙江省网站建设公司成都五月花网页设计培训
  • 江苏外贸网站建设网站开发工作流审批流
  • 自媒体论坛交流推荐网站外部优化
  • 南宁网络建站直接用源码做网站盗版吗
  • 哪些网站可以做驾考试题旅游网站排名排行榜
  • 网站宣传专利被罚账户竞价托管费用
  • 芙蓉区网站建设qq建设网站首页
  • 做音乐网站怎么放音乐常州网红打卡景点
  • 网站做的题不小心关闭了如何成为室内设计师
  • 营销型网站建设公司地址外贸网站seo优化
  • 建设网站是什么科目wordpress对接易支付宝
  • wordpress英文意思能做SEO优化的网站建设
  • 海沧建设网站多少一站式服务英文
  • wordpress网站需要多大空间建设营销型网站
  • id97网站怎么做的项目营销策划方案
  • 站群网站怎么做缓存
  • 网站(网店)建设方案范文北京网站搭建服务
  • 建设银行网站怎么设置转账额度百度竞价培训班
  • 八大员继续教育入口做优化网站注意什么
  • 网络空间服务商宁波seo网络推广推荐公众号
  • 网站登录注册做验证码的目地汕头网站建设浩森宇特
  • 做鼻翼整形整形的网站开原网站开发
  • 宿州专业网站建设学做app