Python 打包和发布方法汇总

以下主要Python打包汇总,作为学习备份;

一、使用python内部基础工具包Distutils打包程序

  1. 在打包之前需要做的就是配置好安装脚本,一般为setup.py文件;

  示例(setup.py):

  from distutils.core import setup

  setup(name='Hello',

     version='1.0',

     description='example',

     author='haomiao',

     py_modules=['hello'])

  该配置文件,只使用了py_modules参数,单一的模块文件名hello.py,当然还有其他的属性、选项可设置;hello.py应与setup.py在同一目录下,分发的时候最好将该目录作为单独的一个目录文件,并将其所依赖的或需要的文件、资源均放在这个目录下或其子目录下,该目录就可以分发给其他开发人员或客户(一般的最终客户不会做这些安装的繁琐事情);

  此外,若有其他的资源文件或是其他的多个py文件,则可以增加packages等其他相关的参数指令。

  将该目录模块安装到python中;执行:python setup.py install ,此后将会复制相关文件至python安装路径下的Lib/site-packages下,

  如上示例将会在该路径下产生:hello.py hello.pyc Hell-1.0-pyx.x.egg-info文件;在使用的时候直接:import hello即可使用。

  2. 在1的基础上打包,使用sdist命令(用于源码发布的形式)

  执行:python setup.py sdist ,将产生两个目录build、dist以及MANIFEST列表文件,build下为中间文件可不用,dist下会打包成一个压缩文件,如:Hello-1.0.zip;事实上,该压缩文件内部包含之前的文件以及PKG-INFO的描述文件,这个时候该压缩文件就可以分发给用户;

  3. 在1的基础上打包,使用bdist命令(用于创建windows或linux的安装程序)

  执行:python setup.py bdist --formats=wininst , 将在dist下产生windows下的安装程序,如:Hello-1.0.win-amd64.exe(产生64位的安装程序,32位的python时会产生相应32位的安装程序Hello-1.0.win32.exe,产生linux的rpm程序,则将wininst改为rpm)。

  4. 在1的基础上使用扩展python(主要是由其他编程语言对python开发的某种模块的功能扩展,以下以C语言为例,比如一个扩展文件ext.c)

  修改1中的setup.py安装配置文件,如

  from distutils.core import setup,Extension

  setup(name='Hello',

     version='1.0',

     description='example',

     author='haomiao',

     ext_modules=[Extension('hello', ['ext.c', ‘ext.i’])])

  改用ex_modules参数,此外ext.c为C语言实现的功能,ext.i为头文件、导出函数、数据的描述文件,示例如下(ext.i):

  %module hello

  %{

  #include<string.h>

  %}

  extern in extFunc(int num);

  说明:以%表述模块名和包含头文件;下面为需要导出的函数、数据等。

  执行:python setup.py build_ext --inplace , 将产生build中间文件,以及hello.pyd, ext_wrap.c包装文件

   5. 使用py2exe创建可执行程序(用户不用安装python解释器)(作为Distutils的扩展)

  在使用前,需要安装pyp2exe,编写setup.py文件,如下:

  from distutils.core import setup

  import py2exe

  setup(console=['hello.py'])

  执行:python setup.py py2exe , 执行完成后,将产生build中间文件,dist目标文件,内部一般有:_hashlib.pyd bz2.pyd hello.exe library.zip pythonxx.dll select.pyd unicodedata.pyd基本上dist下所有文件应该被发布,除非你确认某些模块或文件不会被用到。

  说明:以上所有的方法为概括说明作为指导,具体可以参考相应工具的文档、demo等,此外还有其他选项,如register、upload

  注册并上传包到PyPi等,命令选项也可以组合使用python setup.py register upload,其他选项详情可通过:

  python setup.py --help-commands 查询。

转载于:https://www.cnblogs.com/haomiao/p/4874979.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将Python程序打包发布,您可以使用Python的内置工具setuptools和distutils。以下是一些步骤来打包发布您的Python程序: 1. 创建项目结构:在项目根目录下创建一个与您的项目同名的文件夹,并将您的Python文件和其他相关文件放入其中。 2. 创建setup.py文件:在项目根目录下创建一个名为setup.py的文件。setup.py是用于描述项目元数据和依赖关系的文件。 以下是一个简单的setup.py文件示例: ```python from setuptools import setup setup( name='your_package_name', version='1.0', packages=['your_package_name'], entry_points={ 'console_scripts': [ 'your_script_name=your_package_name.module_name:main' ] }, ) ``` 在这个示例中,您需要将"your_package_name"替换为您的包名,并将"your_script_name"替换为您的可执行脚本名。 3. 安装setuptools:如果您还没有安装setuptools,您需要使用以下命令安装它: ``` pip install setuptools ``` 4. 构建打包文件:在项目根目录下运行以下命令来构建打包文件: ``` python setup.py sdist bdist_wheel ``` 这将会生成一个dist文件夹,并在其中包含了您的打包文件。.tar.gz文件和.whl文件分别用于不同的平台。 5. 发布到PyPI:如果您希望发布您的包到Python Package Index(PyPI),您需要先注册一个PyPI账户。然后使用以下命令来发布您的包: ``` twine upload dist/* ``` 这将会将dist文件夹下的所有文件上传到PyPI。 以上是打包发布Python程序的基本步骤。希望对您有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值