文档主要来自官方文档,主要是为了测试学习

创建pip 包项目

  • 项目结构
├── LICENSE
├── README.md
├── dalongrong_example_pkg
│ └── __init__.py
└── setup.py
 
 
  • 代码说明
    dalongrong_example_pkg/init.py
name = "dalongrong_example_pkg" 

setup.py

import setuptools
with open("README.md", "r") as fh:
    long_description = fh.read()
setuptools.setup(
    name="dalongrong_example_pkg",
    version="0.0.1",
    author="dalongrong",
    author_email="1141591465@qq.com",
    description="A small example package",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://github.com/rongfengliang/pip-demo-package.git",
    packages=setuptools.find_packages(),
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
)
 
 

README.md 文件,就是一个简单的说明

安装构建依赖&& 生成归档文件

  • 安装setuptools&& wheel
python3 -m pip install --user --upgrade setuptools wheel
  • 生成归档文件
python3 setup.py sdist bdist_wheel
 

效果:

python3 setup.py sdist bdist_wheel
running sdist
running egg_info
creating dalongrong_example_pkg.egg-info
writing dalongrong_example_pkg.egg-info/PKG-INFO
writing dependency_links to dalongrong_example_pkg.egg-info/dependency_links.txt
writing top-level names to dalongrong_example_pkg.egg-info/top_level.txt
writing manifest file 'dalongrong_example_pkg.egg-info/SOURCES.txt'
reading manifest file 'dalongrong_example_pkg.egg-info/SOURCES.txt'
writing manifest file 'dalongrong_example_pkg.egg-info/SOURCES.txt'
running check
creating dalongrong_example_pkg-0.0.1
creating dalongrong_example_pkg-0.0.1/dalongrong_example_pkg
creating dalongrong_example_pkg-0.0.1/dalongrong_example_pkg.egg-info
copying files to dalongrong_example_pkg-0.0.1...
copying README.md -> dalongrong_example_pkg-0.0.1
copying setup.py -> dalongrong_example_pkg-0.0.1
copying dalongrong_example_pkg/__init__.py -> dalongrong_example_pkg-0.0.1/dalongrong_example_pkg
copying dalongrong_example_pkg.egg-info/PKG-INFO -> dalongrong_example_pkg-0.0.1/dalongrong_example_pkg.egg-info
copying dalongrong_example_pkg.egg-info/SOURCES.txt -> dalongrong_example_pkg-0.0.1/dalongrong_example_pkg.egg-info
copying dalongrong_example_pkg.egg-info/dependency_links.txt -> dalongrong_example_pkg-0.0.1/dalongrong_example_pkg.egg-info
copying dalongrong_example_pkg.egg-info/top_level.txt -> dalongrong_example_pkg-0.0.1/dalongrong_example_pkg.egg-info
Writing dalongrong_example_pkg-0.0.1/setup.cfg
creating dist
Creating tar archive
removing 'dalongrong_example_pkg-0.0.1' (and everything under it)
running bdist_wheel
running build
running build_py
creating build
creating build/lib
creating build/lib/dalongrong_example_pkg
copying dalongrong_example_pkg/__init__.py -> build/lib/dalongrong_example_pkg
installing to build/bdist.macosx-10.13-x86_64/wheel
running install
running install_lib
creating build/bdist.macosx-10.13-x86_64
creating build/bdist.macosx-10.13-x86_64/wheel
creating build/bdist.macosx-10.13-x86_64/wheel/dalongrong_example_pkg
copying build/lib/dalongrong_example_pkg/__init__.py -> build/bdist.macosx-10.13-x86_64/wheel/dalongrong_example_pkg
running install_egg_info
Copying dalongrong_example_pkg.egg-info to build/bdist.macosx-10.13-x86_64/wheel/dalongrong_example_pkg-0.0.1-py3.7.egg-info
running install_scripts
adding license file "LICENSE" (matched pattern "LICEN[CS]E*")
creating build/bdist.macosx-10.13-x86_64/wheel/dalongrong_example_pkg-0.0.1.dist-info/WHEEL
creating 'dist/dalongrong_example_pkg-0.0.1-py3-none-any.whl' and adding 'build/bdist.macosx-10.13-x86_64/wheel' to it
adding 'dalongrong_example_pkg/__init__.py'
adding 'dalongrong_example_pkg-0.0.1.dist-info/LICENSE'
adding 'dalongrong_example_pkg-0.0.1.dist-info/METADATA'
adding 'dalongrong_example_pkg-0.0.1.dist-info/WHEEL'
adding 'dalongrong_example_pkg-0.0.1.dist-info/top_level.txt'
adding 'dalongrong_example_pkg-0.0.1.dist-info/RECORD'
removing build/bdist.macosx-10.13-x86_64/wheel
├── LICENSE
├── README.md
├── build
│ ├── bdist.macosx-10.13-x86_64
│ └── lib
│ └── dalongrong_example_pkg
│ └── __init__.py
├── dalongrong_example_pkg
│ └── __init__.py
├── dalongrong_example_pkg.egg-info
│ ├── PKG-INFO
│ ├── SOURCES.txt
│ ├── dependency_links.txt
│ └── top_level.txt
├── dist
│ ├── dalongrong_example_pkg-0.0.1-py3-none-any.whl
│ └── dalongrong_example_pkg-0.0.1.tar.gz
└── setup.py
 
 

安装发布上传依赖

  • 安装twine
python3 -m pip install --user --upgrade twine
 
 
twine upload --repository-url https://test.pypi.org/legacy/ dist/*
 
  • 效果

使用上传的包

pip 方式安装

  • 安装
pip install -i https://test.pypi.org/simple/ dalongrong-example-pkg
 
  • 调用代码
app.py
import dalongrong_example_pkg
print(dalongrong_example_pkg.name)
 
 
  • 运行
python app.py
dalongrong_example_pkg
  • requirements 方式使用
    项目结构:
 
├── main.py
├── requirements.txt
└── run.sh
 

requirements.txt 文件:

dalongrong-example-pkg
 
 

main.py:

import dalongrong_example_pkg
print(dalongrong_example_pkg.name)
 

run.sh:

#!/bin/sh
pip install -i https://test.pypi.org/simple/ -r requirements.txt
python main.py
 

说明

这个只是一个简单的demo,只是为了方便学习

参考资料

https://packaging.python.org/tutorials/packaging-projects/
https://test.pypi.org/project/dalongrong-example-pkg/#history
https://github.com/rongfengliang/pip-demo-package

自定义pip 包开发简单说明的更多相关文章

  1. ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

    本文转自 :http://www.cnblogs.com/wendingding/p/3761730.html ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布 ...

  2. iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局

    iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局 一.项目文件结构和plist文件 二.实现效果 三.代码示例 1.没有使用配套的类,而是直接使用xib文 ...

  3. 用QtWebKit开发简单的浏览器

    用QtWebKit开发简单的浏览器 1.代码实现 工程目录结构如下: AddressBar类包含了地址栏和按钮两个控件,将地址栏回车和按钮点击信号与goToSite()槽连接. 当回车和点击事件发生时 ...

  4. 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器

    从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器 之前时间一直在使用Caliburn.Micro这种应用了MVVM模式的WPF框架做开发,是时候总结一下了. Calibu ...

  5. 沉淀再出发:在python3中导入自定义的包

    沉淀再出发:在python3中导入自定义的包 一.前言 在python中如果要使用自己的定义的包,还是有一些需要注意的事项的,这里简单记录一下. 二.在python3中导入自定义的包 2.1.什么是模 ...

  6. SpringBoot-dubbo自定义负载均衡实现简单灰度

    本文介绍如何利用dubbo自定义负载实现简单灰度(用户纬度,部分用户访问一个服务,其余访问剩余服务). 其实在这之前,对dubbo了解的也不是很多,只是简单的使用过,跑了几个demo而已,但是得知接下 ...

  7. Python PIP包管理器

    版权所有,未经许可,禁止转载 章节 Python 介绍 Python 开发环境搭建 Python 语法 Python 变量 Python 数值类型 Python 类型转换 Python 字符串(Str ...

  8. 自定义搭建PHP开发环境

    学习了一段时间php了,因为之前是刚接触php,所以用的是集成安装包(wamp).现在想进一步了解apache.mysql.php之间的关系以及提升自己所以进行自定义搭建PHP开发环境.废话不多说,请 ...

  9. 微信公众平台自定义菜单PHP开发

    微信公众平台自定义菜单PHP开发,微信公众平台自定义菜单是如何实现的呢?其实很简单,首先在微信公众平台升级为服务号,获取appid和appsecret,然后根据这2个参数获取access_token, ...

随机推荐

  1. [大数据从入门到放弃系列教程]第一个spark分析程序

    [大数据从入门到放弃系列教程]第一个spark分析程序 原文链接:http://www.cnblogs.com/blog5277/p/8580007.html 原文作者:博客园--曲高终和寡 **** ...

  2. 获取动态代理生成的.class文件

    生成代理类,并写入硬盘:配置系统属性sun.misc.ProxyGenerator.saveGeneratedFile为true,代理类生成时将自动将生成的代理类写入硬盘 ? 1 2 3 4 5 6 ...

  3. nrf52832-定时器例程

    SDK版本:15.20 代码 #include <stdbool.h> #include <stdint.h> #include "nrf_delay.h" ...

  4. start-dfs.sh 启动成功 datanode未启动

    在namenode中启动报错 test2: Exception in thread "main" java.net.UnknownHostException: unknown ho ...

  5. SQL SERVER 触发器之After,Instead of

    [Ater](同for)先执行增删改操作,再执行触发器操作 [Instead of]直接只执行触发器里的 create trigger triggername on table_name for/af ...

  6. 『Python CoolBook』C扩展库_其六_从C语言中调用Python代码

    点击进入项目 一.C语言运行pyfun的PyObject对象 思路是在C语言中提供实参,传给python函数: 获取py函数对象(PyObject),函数参数(C类型) 获取GIL(PyGILStat ...

  7. 若依项目利用nginx实现负载均衡及保持会话

    记录一下若依项目利用nginx实现负载均衡及保持会话的步骤. 此次作为试验性的测试,为了方便在本地window的环境上实现. 具体步骤: 1.安装两个tomcat8,可以下载一个后,另一个复制即可,下 ...

  8. 斜率优化dp的总结

    放在了我的另一个博客上面 斜率优化dp的总结(多刷新几次才打得开)

  9. BootCamp 在MacBook 上安装Win10

    首先到网上下载win10的ISO光盘, 制作win10安装盘时,一直停在copy文件.最后文件还是没有copy完整. 需要手工把iso里的文件拷贝到U盘里. 否则提示source\install.wi ...

  10. python项目运行环境安装小结

    安装最新即可,实际的版本号可能不一样 安装过程较复杂,建议用一台单独的vm安装,能做成docker image最好 基础软件 nginx-1.10.0: sudo apt-get install ng ...