python附加篇setup打包篇

心得: 过去的几个月里,有忙有闲,慢慢的忘记了自己的成长,在忙碌中使得自己成长变得缓慢,之后的每一天加油,保持自律,保持学习积极的态度。

一、为什么要打包

在多人协作的项目中,往往又可能会依赖他人库,或者别人调用你的代码,或者服务器部署代码,环境配置等等,搭建环境往往需要花费很长的时间来,所以很有必要对我们的完成的项目打出一个外包,别人使用时,往往只需要一键安装,比如已经可以使用的sklearn包,numpy 等等 pip install sklearn ,安装使用都很方便。

二、快速开始

安装wheel

pip install wheel

新建项目目录:
在这里插入图片描述
setup.py

from setuptools import setup, find_packages

setup(
    name='printtest',
    version='1.0',
    packages=find_packages(),
)

test.py

def test123():
    print('print test')
    return "hello world"

开始打包,切换到terminal 执行python setup.py bdist_wheel

同级目录下会生成打包后的文件:
在这里插入图片描述
lib下是安装后packages显示结构,dist下的.whl可以直接pip install dist/..whl进行安装

安装调用:
导入的是以打包前的目录结构进行导入调用,此项目是pro/test.py test123() 函数
在这里插入图片描述

三、常用参数以及打包技巧

setup函数各参数详解:
>>python setup.py --help
  --name              包名称
  --version (-V)      包版本
  --author            程序的作者
  --author_email      程序的作者的邮箱地址
  --maintainer        维护者
  --maintainer_email  维护者的邮箱地址
  --url               程序的官网地址
  --license           程序的授权信息
  --description       程序的简单描述
  --long_description  程序的详细描述
  --platforms         程序适用的软件平台列表
  --classifiers       程序的所属分类列表
  --keywords          程序的关键字列表
  --packages  需要打包的目录列表
  --py_modules  需要打包的python文件列表
  --download_url  程序的下载地址
  --cmdclass  
  --data_files  打包时需要打包的数据文件,如图片,配置文件等 data_files=[("",[pro/t.txt])]
  --scripts  安装时需要执行的脚步列表 scripts = ['bin/fcon']

setup.py打包命令各参数详解:
>>python setup.py --help-commands
  --python setup.py build     # 仅编译不安装
  --python setup.py install    #安装到python安装目录的lib下
  --python setup.py sdist      #生成压缩包(zip/tar.gz)
  --python setup.py bdist_wininst  #生成NT平台安装包(.exe)
  --python setup.py bdist_rpm #生成rpm包

  1. 打包项目文件包含静态文件csv,png,json等
    在这里插入图片描述

setup.py

from setuptools import setup, find_packages

setup(
    name='printtest',
    version='1.0',
    description='hello world',
    license='Apache',
    author="tian",
    author_email="tianjian361@163.com",
    include_package_data=True,
    # 自动包含包内所有受版本控制(cvs/svn/git)的数据文件

    packages=find_packages(include=["pro", "pro.*"]),
    # 需要处理的包目录(包含__init__.py的文件夹)和setup.py同一目录
    # 下搜索各个含有 init.py的包,也可以指定find_packages(),代表打包所有文件

    package_data={'': ['*.json', '*.csv']},
    # 也可以用做打包非py文件,可以使用正则匹配的方式,但文件目录必须包含__init__.py

    data_files=[('pro', ['pro/data/t.json', 'pro/data/t.csv'])],
    # 打包时非py文件存在时,必须得具体指定某个文件的相对路径


    python_requires='>=3.6.0',
    install_requires=['decorator==4.3.0'],
    # 定义依赖哪些模块 如果不存在自动下载,存在则跳过

    zip_safe=False,
    extras_require={}
)

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以使用 setuptools 来打包你的 Python 项目。以下是一个简单的示例,演示如何使用 setuptools 来打包一个 Python 应用程序: 1. 确保你的项目文件夹结构如下所示: ``` your_project/ your_module/ __init__.py module_file.py setup.py README.md ``` 2. 在你的项目文件夹中创建一个名为 `setup.py` 的文件,并添加以下内容: ```python from setuptools import setup, find_packages setup( name='your_project', version='1.0', packages=find_packages(), entry_points={ 'console_scripts': [ 'your_script_name = your_module.module_file:main', ], }, install_requires=[ 'dependency1', 'dependency2', ], author='Your Name', author_email='[email protected]', description='A description of your project', ) ``` 3. 在 `setup.py` 文件中,你需要做以下调整: - 将 `your_project` 替换为你的项目名称。 - 将 `your_module` 替换为你的模块名称。 - 将 `module_file` 替换为你的模块文件名。 - 将 `your_script_name` 替换为你的脚本名称。 4. 在终端中,导航到你的项目文件夹并执行以下命令来构建打包: ``` python setup.py sdist bdist_wheel ``` 这将生成一个名为 `dist` 的文件夹,并在其中包含打包好的文件。 5. 如果一切顺利,你的打包文件现在已经准备好发布了。你可以将 `dist` 文件夹中的文件上传到 PyPI 或其他 Python 包管理器,或者将其直接分发给其他人使用。 这只是一个基本的示例,你可以根据你的项目需求进行更多的配置和定制。有关更多详细信息,请参阅 setuptools 的官方文档:https://setuptools.pypa.io/

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值