python打包源码上传的官网

简介: * 为什么打包源码如果你想让你的实现的python代码,通过pip install 方式供所有人进行下载;那就需要将代码上传到PyPi上,这样才能让所有人使用;
  • 为什么打包源码

如果你想让你的实现的python代码,通过pip install 方式供所有人进行下载;那就需要将代码上传到PyPi上,这样才能让所有人使用;

如何打包源码上传:

  • 前提条件:
1、有一个pypi官网账号;
2、更新pip版本到最新:py -m pip install --upgrade pip
3、通过pip安装twine:要使用twine来上传代码;
4、安装编译工具:pip install --upgrade build
  • 创建项目结构:

第一步,创建本地目录结构;

daletou/
└── src/
    └── daletou/
        ├── __init__.py
        └── dlt.py

以上除了src和__init__.py为固定值,其他都可以自定义;目录结构需保持一致;

其中__init__.py是为了将目录作为包导入,默认可以为空。
dlt.py是包中的一个模块,主要是提供的功能供下载人调用

如在dlt.py中输入如下代码:
代码中提供的一个函数,返回指定的字符串;
此功能是最终上传的pypi后提供给外部的方法;

from random import sample

def random_dlt(num=1,reds_pre=None,blue_pre=None):
    result = []
    for n in range(num):
        if reds_pre is None:
            reds = sample([n for n in range(1,36)],5)
        if blue_pre is None:
            blues = sample([n for n in range(1,13)],2)
        
        reds.sort()
        blues.sort()
        result.append(' '.join(red_balls) + ' + '+ ' '.join(blue_balls))
    return '\n'.join(result)

第二步:创建上传所需的文件;

最终得文件结构如下:

daletou/
├── LICENSE
├── pyproject.toml
├── README.md
├── setup.py
├── src/
│   └── daletou/
│       ├── __init__.py
│       └── dlt.py
  • 文件说明:

pyproject.toml告诉构建工具构建项目所需的内容。
打开pyproject.toml并输入以下内容:

[build-system]
requires = ["setuptools>=42"]
build-backend = "setuptools.build_meta"

README.md 是包的描述信息,markdown格式书写;

# study Package
This is a simple study package.

setup.py是setuptools的构建脚本。它告诉 setuptools 您的包(例如名称和版本)以及要包含的代码文件。
打开setup.py并输入以下内容。更改name 以包含您的用户名;这可确保您拥有唯一的包名称,并且您的包不会与其他人按照本教程上传的包冲突。


import setuptools

with open("README.md", "r", encoding="utf-8") as fh:
    long_description = fh.read()

setuptools.setup(
    name="daletou",
    version="0.0.1",
    author="Author",
    author_email="author@example.com",
    description="example package",
    long_description=long_description,
    long_description_content_type="text/markdown",
    #url="",
    #project_urls={},
    package_dir={"": "src"},
    packages=setuptools.find_packages(where="src"),
    python_requires=">=3.6",
)

部分属性说明:

  • name是您的包的分发名称。这可以是任何名称;
  • version是包版本。
  • author并author_email用于标识包的作者。
  • description是一个简短的、一句话的包摘要。
  • long_description是包的详细说明。
  • long_description_content_type: 描述使用什么类型的标记。
  • url是项目主页的 URL。可不写。
  • project_urls 显示的任意数量的链接。通常是文档、问题跟踪器等。
  • package_dir是一个字典,src目录被指定为根包。
  • packages 包含在分发包中的所有 Python导入包的列表;
  • python_requires给出项目支持的 Python 版本。

还有有个配置文件setup.cfg,相对于setup.py,此文件配置是静态元数据,内容基本不变;推荐使用setup.py配置;
具体可参考pypi 官网解释;

LICENSE是许可文件,参考以下输入既可;

Copyright (c) 2018 The Python Packaging Authority

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

  • 编译打包:

在pyproject.toml文件同级目录;打开命令行工具;
执行命令:

python -m build
开始编译打包
1652258612(1).png

打包完成后,会生成dist文件和打包文件;
image.png

  • 源码上传:

首先执行命令

twine check dist/*

检查是否存在问题,有问题提示,需要解决;
若无问题;执行以下命令上传;

twine upload dist/*

image.png

  • 验证是否可以安装:

    访问上传成功的地址,是否存在你上传的包;
    使用pip install * 验证是否可以安装;

    注意:如果使用的镜像不是官网,例如国内使用最多的清华镜像,可能需要等5分钟以上才能安装,镜像同步需要时间;

相关文章
|
1月前
|
Python
python打包pyinstaller如何使用
解决打包时缺失`libpython3.so`的问题,需确保Python在编译时使用`--enable-shared`选项以支持共享库模式。之后,将生成的`libpython3.so`及`libpython3.9.so.1.0`复制到系统库目录`/usr/lib64`。参考链接提供详细步骤。
|
12天前
|
存储 Shell 区块链
怎么把Python脚本打包成可执行程序?
该文档介绍了如何将Python脚本及其运行环境打包成EXE可执行文件,以便在不具备Python环境的计算机上运行。首先确保Python脚本能够正常运行,然后通过安装PyInstaller并使用`--onefile`参数将脚本打包成独立的EXE文件。此外,还提供了去除命令行窗口和指定可执行文件图标的详细方法。这些步骤帮助用户轻松地将Python程序分发给最终用户。
怎么把Python脚本打包成可执行程序?
|
1月前
|
区块链 Python
最详细Python打包exe教程,并修改图标,只需30秒
最详细Python打包exe教程,并修改图标,只需30秒
56 4
最详细Python打包exe教程,并修改图标,只需30秒
|
1月前
|
Linux Python Windows
Python PDF文件转Word格式,只需要3秒(附打包)
Python PDF文件转Word格式,只需要3秒(附打包)
50 3
Python PDF文件转Word格式,只需要3秒(附打包)
|
13天前
|
安全 数据挖掘 Python
Python的打包工具(setup.py)实战篇
关于如何使用Python的setup.py工具打包Python项目的实战教程。
13 0
Python的打包工具(setup.py)实战篇
|
18天前
|
Ubuntu Linux 数据安全/隐私保护
使用Cython库包对python的py文件(源码)进行加密,把python的.py文件生成.so文件并调用
本文介绍了在Linux系统(Ubuntu 18.04)下将Python源代码(`.py文件`)加密为`.so文件`的方法。首先安装必要的工具如`python3-dev`、`gcc`和`Cython`。然后通过`setup.py`脚本使用Cython将`.py文件`转化为`.so文件`,从而实现源代码的加密保护。文中详细描述了从编写源代码到生成及调用`.so文件`的具体步骤。此方法相较于转化为`.pyc文件`提供了更高的安全性。
30 2
|
24天前
|
测试技术 Python
python自动化测试中装饰器@ddt与@data源码深入解析
综上所述,使用 `@ddt`和 `@data`可以大大简化写作测试用例的过程,让我们能专注于测试逻辑的本身,而无需编写重复的测试方法。通过讲解了 `@ddt`和 `@data`源码的关键部分,我们可以更深入地理解其背后的工作原理。
21 1
|
1月前
|
JSON 算法 API
京东以图搜图功能API接口调用算法源码python
京东图搜接口是一款强大工具,通过上传图片即可搜索京东平台上的商品。适合电商平台、比价应用及需商品识别服务的场景。使用前需了解接口功能并注册开发者账号获取Key和Secret;准备好图片的Base64编码和AppKey;生成安全签名后,利用HTTP客户端发送POST请求至接口URL;最后解析JSON响应数据以获取商品信息。
|
1月前
|
开发者 Python
深入解析Python `httpx`源码,探索现代HTTP客户端的秘密!
深入解析Python `httpx`源码,探索现代HTTP客户端的秘密!
64 1
|
1月前
|
开发者 Python
深入解析Python `requests`库源码,揭开HTTP请求的神秘面纱!
深入解析Python `requests`库源码,揭开HTTP请求的神秘面纱!
120 1