Python之模块打包

2023-11-08

1.什么是模块打包

模块打包目的是让自己开发的功能能够实现共享,供给他人使用;
包管理索引平台:Python Package Index;

2.怎么打包

  • tar.gz格式:这个就是标准压缩格式,里面包含了项目元数据和代码,可以使用Python setup.py sdist命令生成;
  • egg格式:它也是压缩文件,只是扩展名换了,里面包含了项目元数据以及源代码,这个格式由setuptools项目引入, 可以通过命令Python setup.py bdist_egg命令生成;
  • whl格式:这个是Wheel包,也是一个压缩文件,只是扩展名换了,里面包含了项目元数据和代码,还支持免安装直接运行,whl分发包内的元数据和egg包是有些不同的,可以通过命令Python setup.py bdist_wheel生成;
  • 在pycharm的site-packages中,我们安装的第三方包都会被安装在这里,这里的以.dist-info结尾的目录,就是这个库的元数据,是从分发包中备份出来的,.dist-info类型的目录来自于Wheel格式的分发包, 也有些是.egg-info类型的目录,就是Egg格式的分发包

site-packages
├── IPython
├── Jinja2-2.10.dist-info
├── MarkupSafe-1.1.0.dist-info
├── Pygments-2.2.0.dist-info
├── Send2Trash-1.5.0.dist-info
├── pycache
├── appnope
├── appnope-0.1.0.dist-info
├── backcall
├── backcall-0.1.0.dist-info
├── bleach
├── bleach-3.0.2.dist-info
├── certifi
├── certifi-2018.10.15.dist-info
├── chardet
├── chardet-3.0.4.dist-info

3.如何打包、打包后推送到哪里

  • 创建需要打包的模块;

package/
├── README.rst
├── etc
│ └── xkd.conf
├── first_package
│ └── init.py
├── second_package
│ └── init.py
└── setup.py

  • 填写setup.py文件内容;
from setuptools import setup, find_packages
setup(
    name='package',
    version='1.0.0',
    packages = find_packages(),
    install_requires=[
        "requests>=2.19.1",
        "PyYAML>=3.13",
    ],
    description='XKD COURSE FOR TEST',
    long_description=open("README.rst").read(),
    url='github 地址',
    author='Robby',
    author_email='yinhuanyicn@gmail.com',
    license='Apache License 2.0',
    package_data = {
        # 将 .txt和.rst文件也打包进去
        '': ['*.txt', '*.rst'],
    },
    data_files=['etc/xkd.conf',],
    keywords=['xkdpackage',],
)
如果你依然在编程的世界里迷茫,
不知道自己的未来规划,
对python感兴趣,
这里推荐一下我的学习交流圈QQ群:895 797 751,
里面都是学习python的,

  • 使用命令行将模块打包:python setup.py bdist_wheel;

  • 打包后会生成一些目录:build、dist、xkdpackage.egg-info

在PYPI平台注册账号,在邮箱中认证连接,链接:https://pypi.org/;

  • 在用户的家目录下创建~/.pypirc文件,此文件中配置PyPI访问地址和账号;
  • 安装twine的命令行:pip install twine;
  • 将打包好的模块发送到PYPI平台:twine upload dist/*;
  • 可以发送到公司的PYPI服务器,如果公司搭建了pypiserver服务器,那么可以直接将tar.gz的包放在对应的目录下,公司内部下载即可;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python之模块打包 的相关文章

  • 如何使用 django-sitetree?

    我正在尝试使用Django 站点树 https github com idlesign django sitetree但我不明白如何执行第 3 步 转到 Django 管理站点并添加一些树和树项目 如何在管理面板中制作站点树 我相信第一步是
  • Django / PIL - 上传图像时保存缩略图版本

    这是我的 forms py class UploadImageForm forms ModelForm class Meta model UserImages fields photo 这是我的 models py class UserIm
  • DJANGO:如何列出_显示反向外键属性?

    我正在构建一个网络应用程序来跟踪一个人借阅的图书馆书籍 我有以下型号 class Person models Model name models CharField max length 100 def unicode self retur
  • 自定义 django-rest-framework-simplejwt 的 JWT 响应

    我正在设置 Django 来发送 JWT 响应而不是视图 我尝试使用 django rest framework simplejwt 这个框架中提供了一个函数TokenObtainPairView as view 返回一对 jwt 我需要使
  • Django 管理员 - 登录

    我正在建造一个Django Web App 与 Django Suit 用于管理界面 已经让 Python 2 7 Django 1 10 和 MySQL 和谐通信并启动了一个项目 python m django admin startpr
  • Django Rest Framework 分页设置 - 内容范围

    6 30 15 我怎样才能让这个问题变得更好并且对其他人更有帮助 反馈会有帮助 谢谢 我使用 DRF 作为 Dojo Dgrid Web 应用程序的服务器端 Dojo 需要来自服务器的内容范围或范围响应 目前它不发送任何内容 因此 dgri
  • 使用 Javascript 在单独的表单页面上使用图像文件名更新隐藏的表单字段

    我有一个定制的 Djangowizard form html它在我的调查的三个不同页面上向用户显示了 3 张不同的图像 我正在尝试使用下面的脚本来更新 3 个不同页面上的 3 个隐藏表单字段 其内容为value display image
  • 在 Docker 容器中看不到 Django

    我想在一个简单的 Docker 容器中运行 Django 首先 我使用 Docker 文件构建了容器 里面没有什么特别的 只有 FROM RUN 和 COPY 命令 然后我用命令运行我的容器 docker run tid p 8000 80
  • 使用 Django REST 框架进行 SAML SSO 身份验证

    我目前正在开发 AngularJS 前端和 Django REST 后端 我一直在使用Django rest auth https github com Tivix django rest auth过去需要对两者之间的连接进行身份验证 但现
  • Django:在单独的线程中使用相同的测试数据库

    我正在使用具有以下数据库设置的测试数据库运行 pytests DATABASES default ENGINE django db backends postgresql psycopg2 NAME postgres USER someth
  • django - 如何将实际图像文件从一个模型复制到另一个模型?

    我想将项目中的图像从一个模型复制到另一个模型 假设这些是我的模型 class BackgroundImage models Model user models ForeignKey User image models ImageField
  • Django:管理中的 AJAX ManyToManyField

    我要显示ManyToManyFields 在 admin 中就像filter horizontal确实如此 但会在用户在过滤器字段中键入内容时填充选项 有很多选项 一次性加载它们需要很多时间 I found django ajax 过滤字段
  • InterfaceError:连接已关闭(使用 django + celery + Scrapy)

    当我在 Celery 任务中使用 Scrapy 解析函数 有时可能需要 10 分钟 时 我得到了这个信息 我用 姜戈 1 6 5 django celery 3 1 16 芹菜 3 1 16 psycopg2 2 5 5 我也使用了psyc
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • 在 Django 中定期运行一个函数

    我在 Django 中编写一个应用程序来监视一组服务器中的某些服务 我希望定期更新观点 到目前为止 我已经研究过编写自定义管理命令 链接在这里 http docs djangoproject com en dev howto custom
  • 将文件夹和文件结构从 django 1.3 迁移到 django 1.4 的最佳方法是什么?

    我有一个使用 django1 3 创建的小项目 我想将其迁移到 django1 4 但由于文件结构发生了一些变化 最好的迁移方法是什么 Read https docs djangoproject com en dev releases 1
  • 使用 Http Post 发送图像

    我想使用 Http Post 将图像从 android 客户端发送到 Django 服务器 该图像是从图库中选择的 目前 我正在使用列表值名称 Pairs 将必要的数据发送到服务器并接收来自 Django 的 JSON 响应 是否可以对图像
  • Django 代理模型的继承和多态性

    我正在开发一个我没有启动的 Django 项目 我面临着一个问题遗产 我有一个大模型 在示例中简化 称为MyModel这应该代表不同种类的物品 的所有实例对象MyModel应该具有相同的字段 但方法的行为根据项目类型的不同而有很大差异 到目
  • 如何让 Django 和 ReactJS 协同工作?

    New to Django and even newer to ReactJS I have been looking into AngularJS and ReactJS but decided on ReactJS It seemed
  • Django admin - 更改权限列表

    是否可以更改用户编辑页面中的权限列表 我不想显示所有权限 例如管理日志条目或身份验证组等 如何修改主查询集以排除其中的某些查询集 我的想法来自这个话题 https groups google com forum topic django u

随机推荐

  • CUDA学习笔记(5) 原子操作

    原子操作是指 当一个线程 Thread 要对同一个显存变量依次进行 读 计算 写 的操作时 这个 读 计算 写 的操作必须连贯地执行 中间不能插入任何其他操作 举个例子 假设我们想要用GPU统计 char data 0 32 1 0 1 这
  • 数学建模—降维—主成分分析(PCA)

    清风数学建模笔记 可用python或者matlab实现 主成分分析是一种降维算法 它能将多个指标转换为少数几个主成分 这些主成分是原始变量的线性组合 且彼此之间互不相关 且能反映出原始数据的大部分信息 一般来说 当研究的问题涉及到多变量且变
  • elasticsearch 中获得 分词匹配 +(or) 全词模糊匹配 的查询结果(boolQuery)

    Override public Response selectStructuredDataList StructuredDataDTO structuredDataDTO StructuredDataTypeEnum structuredD
  • Unity3d开发中,用Visual Studio编写c#脚本代码出现无法代码补全的解决方案

    VS版本 Visual Stduio 2017 第一步 VS菜单栏 gt 工具 gt 获取工具和功能 gt 打开visual studio installer 如下图勾选unity工作负载后安装 第二步 Unity菜单栏 gt edit g
  • GPT应用开发 - langchain 初始化

    依赖安装 langchain pip install langchain or conda install langchain c conda forge 配置环境 使用langchain依赖一个或者多个模型 数据库 外部的api接口等 下
  • 力扣刷题系列——位运算篇

    目录 几道常见的位运算算法题 1 不用加号的加法 2 最大单词长度乘积 3 比特位计数 4 整数替换 5 每个元音包含偶数次的最长子字符串 6 绘制直线 7 只出现一次的数字III 8 颠倒二进制位 9 两数相除 几道常见的位运算算法题 以
  • python基础知识三——try与except处理异常语句

    try except介绍 与其他语言相同 在python中 try except语句主要是用于处理程序正常执行过程中出现的一些异常情况 如语法错 python作为脚本语言没有编译的环节 在执行过程中对语法进行检测 出错后发出异常消息 数据除
  • 汇编 - ORG指令详解

    ORG指令 ORG是Origin的缩写 起始地址 源 在汇编语言源程序的开始通常都用一条ORG伪指令来实现规定程序的起始地址 如果不用ORG规定则汇编得到的目标程序将从0000H开始 例如 ORG 2000H START MOV AX 00
  • 使用python批量修改文件名

    使用python对文件名进行批量修改 使用split方法对原文件名进行切分 选择需要的部分进行保留做为新的文件名 也可添加字段 函数说明 split 函数 语法 str split str num string count str n 参数
  • 十六进制串口发送

    字符串转化为十六进制 让串口发送数据 int hexdata lowhexdata unsigned short int hexdatalen 0 unsigned char hexdatalenH8 hexdatalenL8 int le
  • Math类的常用方法

    在本篇文章种 我使用Type就意味着这个是类型的可变的 可以是int 也可以是double long float 1 取绝对值Math abs Type number 返回值是你传入的类型 2 向上取整Math ceil double nu
  • Element Plus 全局修改组件默认属性

    main js 这里已修改ElSelect为示例 import ElementPlus ElSelect from element plus ElSelect props clearable type Boolean default tru
  • SpringBoot集成dynamic-datasource实现多数据源自动注入

    springboot在集成dynamic datasource后配置多数据源其实还是很简单的 pom依赖
  • requests.exceptions.SSLError 请求异常,SSL错误,证书认证失败问题解决

    请求异常 SSL错误 证书认证失败解决方法 在爬取一些网站的数据时 有时候会碰到以下报错 requests exceptions SSLError HTTPSConnectionPool host martin audio com port
  • postman工具批量调用接口

    1 先在Collections中建一个文件夹 然后新建一个接口保存 2 然后选择Run 3 准备一个txt文件 增加要循环的参数json数组 4 选择接口 上传文件 配置参数 Iterations为线程数 Delay为推迟多久 然后点下面的
  • 3Dgame_homework8

    3D游戏 作业8 简单粒子制作 要求 相关理论 粒子系统 Unity 粒子系统 拟物控制 制作过程 准备 实现 光 光晕 星光 制作结果与控制 简单粒子制作 要求 按参考资源 Unity3d Particle System 系统的学习 三
  • Discuz! X3.4:若检测到未登录,返回提示登录链接

    if trim G username return lt lt
  • Java8中 Date和LocalDate的相互转换

    一 简述 Date对象表示特定的日期和时间 而LocalDate Java8 对象只包含没有任何时间信息的日期 因此 如果我们只关心日期而不是时间信息 则可以在Date和LocalDate之间进行转换 二 Date转LocalDate 如果
  • linux svn 修改回退,玩转SVN-版本回退

    当我们想放弃对文件的修改 可以使用 SVN revert 命令 svn revert 操作将撤销任何文件或目录里的局部更改 我们对文件 readme 进行修改 查看文件状态 root runoob svn runoob01 trunk sv
  • Python之模块打包

    1 什么是模块打包 模块打包目的是让自己开发的功能能够实现共享 供给他人使用 包管理索引平台 Python Package Index 2 怎么打包 tar gz格式 这个就是标准压缩格式 里面包含了项目元数据和代码 可以使用Python