python如何发布自已pip项目的方法步骤

前言

因为自已平时会把一个常用到逻辑写成一个工具python脚本,像关于时间字符串处理,像关于路径和文件夹遍历什么的工具。每一次新建一个项目的时候都要把这些工具程序复制到每个项目中,换一个电脑后还要从github生新下载后再复制到项目中,实在太麻烦。最后想想,还是建一个自已的pip项目会比较好。

环境准备

要用 pip 发布 python 程序,首先当然是要安装 Python 和 pip 这两个软件了,以 Ubuntu 16.04 为例:

$ sudo apt update
$ sudo apt install -y python python-pip

CentOS 和 RedHat 因为 RPM 体系需要依赖于 python,更是默认就安装好了。

另外发布 Pypi,还需要安装一个发布工具, twine ,以及其所依赖的 setuptools、wheel:

$ sudo pip install --upgrade twine setuptools wheel

好,到这环境就已经就绪了。

第一步:注册一个PyPi帐号

PyPi注册网站

在上边的注册网站上注册一个自已的帐号,注册好后在邮箱激活,一般注册流程都是这么操作了,这里就不多说了。

第二步:在github上创建一个项目

如果你还没有使用过github源码托管网站,可以先注册一个github的帐户再创建项目,我一般创建项目用的是官网提供的桌面工具Github Desktop.

Github Desktop的下载地址:https://desktop.github.com

github注册和创建新项目,这里也不说了,程序员的基本功。

第三步:编写自已的python项目

我这里只有一个timetool.py和pathtool.py两个文件

详情可以查看我的示例项目: https://github.com/fengmm521/pipProject

先建一个目录,比如magetool,这个里边放的是你的项目代码

在这个magetool目录里,新建一个__init__.py,这个文件里可以什么都不用写,然后就是你要发布的.py文件

第四步:编写setup.py文件

这里重点说明一下这个setup.py文件,因为整个pip项目的发布和上传都是基于这个setup.py文件完成的。

大家可以看一下我示例项目的setup.py是怎么写的,其实我也是从网上下载别人写好的。

#!/usr/bin/env python
#-*- coding:utf-8 -*-

#############################################
# File Name: setup.py
# Author: mage
# Mail: mage@woodcol.com
# Created Time: 2018-1-23 19:17:34
#############################################

from setuptools import setup, find_packages

setup(
  name = "magetool",
  version = "0.1.0",
  keywords = ("pip", "pathtool","timetool", "magetool", "mage"),
  description = "time and path tool",
  long_description = "time and path tool",
  license = "MIT Licence",

  url = "https://github.com/fengmm521/pipProject",
  author = "mage",
  author_email = "mage@woodcol.com",

  packages = find_packages(),
  include_package_data = True,
  platforms = "any",
  install_requires = []
)

setup.py中重要的参数有5个:

1.name

name = “magetool”,这个name参数后边的就是你的项目代码所在目录,也是你pip要上传的项目名称,其他人用pip install xxx来安装时,后边的xxx就是你的这个magetool

2.version

version = “0.1.0”,你工具的版本号,后期你工具更新了,要用pip来更新包的时候,会更新比当前版本号高的新版本。

下边是pip 更新包的命令

pip install --upgrade <包的名字>
pip install -U <包的名字>12

3.packages

packages = find_packages(),这个参数是导入目录下的所有__init__.py包

4.install_requires

install_requires = [],这是一个数组,里边包含的是咱的pip项目引用到的第三方库,如果你的项目有用到第三方库,要在这里添上第三方库的包名,如果用的第三方版本不是最新版本,还要有版本号。

第五步:打包自已的项目

在代码编写完成,自已测试后没有问题了,就可以打包了。

打包使用下边两个命令:

我使用的是第二个

$ python setup.py bdist_egg   # 生成类似 edssdk-0.0.1-py2.7.egg,支持 easy_install
$ python setup.py sdist     # 生成类似 edssdk-0.0.1.tar.gz,支持 pip12

两个命令打包好之后都会生成build和dist两个目录,打包的文件会放在dist目录下,供后边上传到PyPi服务器

第六步:上传到PyPi服务器

在上传前,要建一个文件,$HOME/.pypirc,$HOME目录在linux或者mac系统下就是~/目录。在这里建一个.pypirc文件。里边的内容如下:

[distutils]
index-servers = pypi

[pypi]
username:你的PyPi用户名
password:你的PyPi密码
~

因为不能使用python setup.py register进行上传,使用这个上传会报一个410的错误。所以要使用.pypirc文件保存你的PyPi用户信息,这时使用下载的twine就可以直接上传了。

在别的地方找到的有说上传用python setup.py sdist upload命令,但在我这里用这个命令也会一直失败,所以我用下边的命令上传打包好的pip项目,我上传的是用第五步的,python setup.py sdist命令打包好的项目,

上传好打包的pip安装包:

twine upload dist/magetool-0.1.0.tar.gz1

第七步:使用pip安装刚刚上传的包

pip安装包我这里就不多说了,这个一般用python的都会的

用pip安装上传的包:

pip install magetool --user

–user参数的意思是安装给当电脑的当前用户,要不然会要求系统管理员权限才能安装。加了–user之后就不用sudo的管理员权限了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 使用pip发布Python程序的方法步骤

    写过 Python 程序的小伙伴们都知道,需要 import 个非 Python 自带的软件包时,都要用到 pip 这个程序.平时我们都是用 pip,如果我们写好了一个程序,想让大家都能用的到,那么是不是也可以通过 pip 发布出去呢? 答案当然是可以了,这篇文章我们就来看看如何用 pip 发布一个 python 程序. 1. 环境准备 要用 pip 发布 python 程序,首先当然是要安装 Python 和 pip 这两个软件了,以 Ubuntu 16.04 为例: $ sudo apt u

  • python如何发布自已pip项目的方法步骤

    前言 因为自已平时会把一个常用到逻辑写成一个工具python脚本,像关于时间字符串处理,像关于路径和文件夹遍历什么的工具.每一次新建一个项目的时候都要把这些工具程序复制到每个项目中,换一个电脑后还要从github生新下载后再复制到项目中,实在太麻烦.最后想想,还是建一个自已的pip项目会比较好. 环境准备 要用 pip 发布 python 程序,首先当然是要安装 Python 和 pip 这两个软件了,以 Ubuntu 16.04 为例: $ sudo apt update $ sudo apt

  • python如何将自己的包上传到PyPi并可通过pip安装的方法步骤

    目录 一.创建包 1.1 包概念简述 1.2 创建包结构 二.上传前准备 2.1 完善包相关信息 2.2 创建可供分发的包 三.上传包至PyPi 3.1 使用PyPi测试环境先熟悉上传步骤 3.2 正式上传至PyPi 四.使用pip安装测试 4.1 安装PyPi测试环境的包 4.2 安装PyPi正式环境的包 五.包版本更新 当逐渐在用python开发项目或者日常使用时,一般需要大量使用别人提供的包,这些包能高效的帮助我们快速高效的完成指定任务或者需求,不过有时也会想,自己如果能够把自己的代码打包

  • python一键升级所有pip package的方法

    pip_ungrade_all.py代码如下: # -*- coding: utf-8 -*- import pip from subprocess import call for dist in pip.get_installed_distributions(): call("pip install --upgrade " + dist.project_name, shell=True) 以管理身份执行脚本pip_ungrade_all.py # python pip_ungrade

  • jenkins自动构建发布vue项目的方法步骤

    简介 Jenkins是一个开源的.提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续.自动的构建/测试软件项目.监控外部任务的运行(这个比较抽象,暂且写上,不做解释).Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行.通常与版本管理工具(SCM).构建工具结合使用.常用的版本控制工具有SVN.GIT,构建工具有Maven.Ant.Gradle. jenkins安装 1.安装JDK yum install

  • Visual Studio Code搭建django项目的方法步骤

    之前我们使用VSCode搭建C#项目,今天写一篇关于django项目的搭建,其实以其说是搭建django框架,不如说是如何通过vscode开发django项目:django官网:https://www.djangoproject.com/ 安装django django安装命令:pip install django,参考:https://docs.djangoproject.com/en/3.0/topics/install/ 查看django的安装版本:python -m django --v

  • Python中使用Selenium环境安装的方法步骤

    环境准备 已正确安装python环境,已安装chrome浏览器或者firefox浏览器 使用 python --version 命令如果输出python版本则python 安装成功 安装selenium 使用pip命令安装selenium pip install selenium 下载chrome驱动 或者firefox驱动 selenium的chrome驱动(国内阿里像) selenium的firefox驱动(github地址) 注意:下载对应版本的驱, 点击浏览器三个点 - 帮助 - 关于G

  • 使用jenkins部署springboot项目的方法步骤

    1.准备工作 1.JDK安装 2.Maven安装 3.Git安装 4.jenkins安装 以上软件安装成功后进入jenkins进行相关配置. 如果需要通过SSH进行远程发布项目,jenkins需要安装 Publish Over SSH 插件 2.全局配置 通过whereis git查找git的安装地址 3.全局配置完成后在进行系统配置 ,如图 4.基础配置完成以后,下面我们来新建一个项目 项目的配置: 5.shell mvn clean package -Dmaven.test.skip=tru

  • 用VScode编写C++大型项目的方法步骤

    目录 vscode远程开发配置 选用vscode的原因 配置流程 安装C++扩展 ​clang-format格式化代码 安装clang-format 创建clang-format文件 vscode支持clang-format 代码检查工具clang-tidy clang-tidy的安装 cmake实现代码工程化 cmake实践 clang-tidy在cmake中的配置 ccache加速编译 ccache安装 结合cmake使用 vscode远程开发配置 由于后面项目用到了epoll和splice

  • Linux下部署springboot项目的方法步骤

    最近在研究将springboot项目部署到Linux服务器上,由于springboot是内嵌了tomcat,所以可以直接将项目打包上传至服务器上. 1.在pom文件中添加springboot的maven插件 <build> <plugins> <plugin> <groupid>org.springframework.boot</groupid> spring-boot-maven-plugin</artifactid> </p

  • pycharm新建Vue项目的方法步骤(图文)

    1.首先安装Node.js 官网:https://nodejs.org/zh-cn/ 1)根据自己电脑型号下载好 2)点击安装,傻瓜式一步一步最后完成安装 3)打开CMD,检查是否正常,如果显示了如下则安装正常 2.使用淘宝NPM镜像 大家都知道国内直接使用npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像. npm install -g cnpm --registry=https://registry.npm.taobao.org 这样就可以使用cnpm命令来安装模块了 3.项目初始

随机推荐