把程序打包上传到PyPi版本库中

更新:新版上传变化了 详见

pip install twine

python setup.py sdist

twine upload dist/* 

或者某个版本

twine upload dist/jumpserver-python-sdk-0.0.15.tar.gz

转自

1 首先必须要按照以下文件结构

├── douban
│   ├── cli.py
│   ├── douban.py
│   ├── douban_token.py
│   ├── getch.py
│   └── __init__.py
├── README.md
└── setup.py
  • 必须至少一个包,即上面的douban,把模块都放在包下,且包中必须有__init__.py文件(可以为空)
  • 必须有一个setup.py文件

2 setup.py文件

#-*- encoding: UTF-8 -*-
from setuptools import setup, find_packages
import sys, os
"""
打包的用的setup必须引入
""" VERSION = '0.2.0' with open('README.md') as f:
long_description = f.read() setup(
name='douban.fm', # 文件名
version=VERSION, # 版本(每次更新上传Pypi需要修改)
description="a tiny and smart cli player of douban.fm based on Python",
long_description=long_description, # 放README.md文件,方便在Pypi页展示
classifiers=[], # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers
keywords='python douban douban.fm terminal', # 关键字
author='taizilongxu', # 用户名
author_email='468137306@qq.com', # 邮箱
url='https://github.com/taizilongxu/douban.fm', # github上的地址,别的地址也可以
license='MIT', # 遵循的协议
packages=['douban'], # 发布的包名
include_package_data=True,
zip_safe=True,
install_requires=[
'termcolor',
], # 满足的依赖
entry_points={
'console_scripts':[
'douban.fm = douban.douban:main'
]
},
)
  • entry_points : [可执行程序名]=引入的包名.子包名.模块名:入口函数.这个要注意了,主程序要引入main函数进行执行.好让包找到执行的位置

3 安装

如果不上传文件,只在本机中安装,那么可以运行以下命令

python setup.py install

这样就在本机安装了程序,在shell中输入douban.fm(刚才在entry_points中输入的可执行程序名),就可以执行了

4 上传到Pypi

先在 https://pypi.python.org/pypi 注册个Pypi号,认证邮箱.

然后再在你的用户目录下新建一个.pypirc文件,输入如下:

[distutils]
index-servers =
pypi [pypi]
username:
password:

把username和password填上保存就可以了

回到你的setup.py目录,输入如下命令

sudo python setup.py register sdist bdist_egg upload

你的包就可以发到Pypi里了,通过pip或者easy_install就可以下载你的包了

5 更新Pypi包

当包版本更新后,需要在你的setup.py文件里修改VERSION,然后运行第4部的命令就可以了(如果不更新VERSION包就不能上传成功)

pypi上传库的更多相关文章

  1. pypi上传问题

    pypi上传过程中报错403 windows 解决办法: 1.建一个新的记事本编辑内容 [distutils]index-servers = pypi [pypi]repository:https:/ ...

  2. js文件上传库

    收集了2个与具体UI库和框架无任何耦合的JS文件上传库:支持断点续传.支持npm安装. resumable.js fileapi

  3. 讲解开源项目:功能强大的 JS 文件上传库

    本文作者:HelloGitHub-kalifun HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  4. pypi上传命令

    windows 1.新建一个setup.py文件与你自己写的.py模块放在一个文件夹内 内容: from distutils.core import setup setup( name = " ...

  5. Android 上传库到Binary的操作

    第一次,按照网上教程配置需要的配置文件,上传成功 1.0版本. 以后更新的时候 输入 : install ,执行task 然后再输入:bintrayUpload ,执行task,看下面控制台输出信息, ...

  6. 体验三大JavaScript文件上传库(Uppy.js/Filepond/Dropzone)

    最近发现了一个高颜值的前端上传组件Uppy.js,立即上手体验了一波,感觉还不错.然后又看到同类型的Filepond以及Dropzone.js,对比体验了一下,感觉都很优秀,但是在体验过程中,都遇到了 ...

  7. 如何在Pypi发布上传你自己的Python库

    Pypi上传包 准备 Windows环境 *以下教程只能在Windows上执行,MACOS系统不能使用 注册账号 你需要在Pypi上注册一个账号. 安装必要的库 setuptools 原则上安装了pi ...

  8. Maven使用deploy上传jar包到远程库

    一.环境准备 首先需要在本地环境安装好maven,并且在环境变量配置好 二.配置远程库认证 需要在./conf/setting.xml(maven的配置文件,不要弄错)中配置需要远程上传库的地址,用户 ...

  9. Maven使用deploy上传jar包到远程库 以Oracle驱动为例

    一.首先要得到Oracle JDBC Driver 1.通过Oracle官方网站下载相应版本:http://www.oracle.com/technetwork/database/features/j ...

随机推荐

  1. 【原】iOS学习之文件管理器(NSFileManager)和文件对接器(NSFileHandle)

    1.文件管理器(NSFileManager) 1> 主要作用及功能方法 主要作用:此类主要是对文件进行的操作(创建/删除/改名等)以及文件信息的获取. 功能方法: 2> 创建文件夹 创建所 ...

  2. 西门子成立next47部门,斥资十亿欧元投资VR/AR等初创公司

       近日,西门子公司在慕尼黑举行的"西门子创新日"现场,宣布了三个关于"创新"的新动作.首先,超过六成员工的创新应用得到肯定,其中有 25 个项目获得总数高达 ...

  3. C#中UnixTime和DateTime的转换(转载)

    由于在API请求中返回回来的时间格式为UNIX形式,需要转换成正常的显示方式,在网上找到了这么一个例子. 使用是在C#中使用的,所以WP8开发应该也可以. 转载源地址:http://blog.linu ...

  4. 修改Windows Server 2008密码策略,设置简单密码

    最长使用期限为0表示密码永不过期. 如果是VBOX虚拟机安装,在使用共享文件夹功能时候,需要打开控制面板--网络和共享中心--共享设置--启动网络发现.然后才能映射共享文件夹

  5. 利用 canvas 破解 某拖动验证码

    利用 canvas 破解 某拖动验证码 http://my.oschina.net/u/237940/blog/337194

  6. JavaScript模拟鼠标右键菜单

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Graph cuts图论分割

    Graph cuts是一种十分有用和流行的能量优化算法,在计算机视觉领域普遍应用于前背景分割(Image segmentation).立体视觉(stereo vision).抠图(Image matt ...

  8. Zxing库

    一.介绍 Zxing是一个开放的源码,用java实现的多种样式的1D/2D条码处理库,它包含了联系到其他语言的端口.Zxing可以实现手机的内置摄像头完成条码的扫描及解码.目前支持:UPC-A ,UP ...

  9. C语言3

    C语言的学习已经进入尾声,再过几天就要考试了,今天我们用C语言做了一个推箱子的游戏.就相当于复习以前的知识啦,但是感觉好难啊,但是老师教我们用函数的思想,让我们"分",把问题分解开 ...

  10. Mybatis学习记录

    参考资料: <深入理解mybatis原理> MyBatis的架构设计以及实例分析