之前写了一个爬虫的包,主要是根据自己写爬虫的情况总结一下。

因为每次都要重复写一些代码,所以提炼出来,类似一个框架的样子吧。

开始是放在自己的项目里引用,但如果换了一个项目,就得重新拷一遍,很麻烦。

后面又学到了,放在site-package里面可以在自己的环境引用,但换一个环境也是不行的,于是想到放到pypi上面,可以直接pip install,就很方便。

   记录一下上传包的过程。

先上一个参考文章https://www.cnblogs.com/sting2me/p/6550897.html。这个比较详细,跟着这个做基本没什么问题。

一、准备好自己的模块

上图为文件结构,我将我的文件,spider和crawler放到了一个文件夹Elise里面,外面是setup.py

二、编写setup.py

 # encoding=utf-8
# date: 2019/4/3
__author__ = "Masako" from distutils.core import setup setup(
name='Elise', # 安装包名称, pip install用
version='0.1.6', # 版本,不可重复
author='Masako', # 作者
author_email='Masako@example.com', # 邮件
url='https://github.com/TitledPythonFile', # 代码地址
# py_modules=['spider', 'crawler', 'test'], # 使用模块列表打包
packages=['Elise'], # 使用文件夹(包)打包
license='GPL', # 协议
description='Simple multithreading spider', # 描述
long_description=open('README.rst').read(), # 说明, 一定是rst
install_requires=[
"requests==2.19.1", # 需要安装的依赖,列表,有的版本不支持,推荐使用requirement.txt
],
)

  setup.py是安装包的必要信息。参数含义见注释。

三、打包

  准备完成后打开命令行,执行 python setup.py sdist build

  因为我的文件不齐全,不规范,所以有很多警告。先不管。

  执行完毕后会出现两个文件夹build和dist。

四、上传pypi

安装 twine pip install twine

上传dist twine upload dist/* 。

  

需要输入账号密码,去pypi上注册一下就可以。

注意事项

1.注意名称和版本,名称只能取pypi上不存在的名称,就算这个项目是你自己注册的,名称也不能一样;版本不能重复,不然上传不上去的,也就是说每次上传都要改一个版本的。

  2.注意使用py_modules参数打包的时候,模块直接和setup.py放在同一文件夹,如下图

安装后py文件会直接在site-package列表里面。比如xmltodict就是这种打包方式。如下

      

  假设在这种打包下,引入spider.py文件中的Spider类,引入使用的是 from spider import Spider。

  而用我当前的打包方式,安装后效果如下

  这种打包下,我的spider,引入使用的时候是 from Elise.spider import Spider。

参考文档

    https://packaging.python.org/

造一个轮子然后安装到pypi上的更多相关文章

  1. dva的effect那么难用,自己造一个轮子吧

    背景 对于dva这个开发框架,国内从事react的前端工程师多半不会感到陌生,dva完善的开发体系和简单的api,让其被广泛运用到实际工作中.我所在的公司也是长期使用dva作为基础的开发框架,虽然好用 ...

  2. 「造个轮子」——cicada 设计一个配置模块

    前言 在前两次的 cicada 版本中其实还不支持读取配置文件,比如对端口.路由的配置. 因此我按照自己的想法创建了一个 issue ,也收集到了一些很不错的建议. 最终其实还是按照我之前的想法来做了 ...

  3. RPC基础以及造一个RPC的轮子需要注意些什么

    RPC基础以及造一个RPC的轮子需要注意些什么 前言 rpc即远程过程调用,是分布式系统常用的通信方法.远程可以是在一台机器上的不同进程或在不同一个机器上的不同进程.rpc更看重速度,像调用本地方法一 ...

  4. 关于“找不到附属汇编 Microsoft.VC90.CRT,上一个错误是 参照的汇编没有安装在系统上。”的解决

    关于“找不到附属汇编 Microsoft.VC90.CRT,上一个错误是 参照的汇编没有安装在系统上.”的解决 一个项目需要在Win系统用计划任务执行PHP,写了个批处理bat利用php-cgi.ex ...

  5. ios 给微信开发一个插件并安装到未越狱的手机上教程

    现来整体说一下思路,首先给越狱的手机开发一个插件并安装上去,然后去越狱手机上找到相应的动态库和对应的微信APP安装包,拷贝出来,然后重新签名,就可以安装到未越狱的手机上了 1.首先你的电脑需要安装th ...

  6. pypi上传库

    把程序打包上传到PyPi版本库中 转自 1 首先必须要按照以下文件结构 ├── douban │   ├── cli.py │   ├── douban.py │   ├── douban_token ...

  7. 将自己写的Python代码打包放到PyPI上

    如果是开源的Python代码,为了能够让大家更方便的使用,放到PyPI上也许是个非常不错的主意(PyPI:Python Package Index).刚开始我以为要将代码打包放到PyPI上是一件非常复 ...

  8. 如何将你自己的Python package发布到PyPI上

    零.前言 最近做了一个小工具,查询IP或者域名的归属地.做完之后想发布到PyPI上,这样大家就可以通过pip来安装了. 在发布的过程中遇到了一些问题,也学到了很多东西.记录到这篇文章中.希望对大家有所 ...

  9. Asp.net Mvc 请求是如何到达 MvcHandler的——UrlRoutingModule、MvcRouteHandler分析,并造个轮子

    这个是转载自:http://www.cnblogs.com/keyindex/archive/2012/08/11/2634005.html(那个比较容易忘记,希望博主不要生气的) 前言 本文假定读者 ...

随机推荐

  1. 关于InvokeMethod Activity的异步调用

    讨论地址:http://www.cnblogs.com/foundation/archive/2009/12/17/1626617.html 结论是IsCompleted的设置被忽略,看代码里注释 u ...

  2. Android 通过adb shell命令查看内存,CPU,启动时间,电量等信息

    1.  查看内存信息 1)查看所有内存信息 命令: dumpsys meminfo 例: C:\Users\laiyu>adb shell shell@android:/ $ dumpsys m ...

  3. Oracle学习笔记(十一)

    例外: 例外是程序设计语言提供的一种功能,用来增强程序的健壮性和容错性. 例外分为:系统例外自定义例外 系统例外分为:No_data_found(没有找到数据).Too_many_rows(selec ...

  4. 安装Android SDK Manager的“Failed to fetch refused”问题解决方法

    安装Android SDK Manager的"Failed to fetch refused"问题解决方法 一见 2014/11/11 问题现象: 步骤一:修改hosts文件(wi ...

  5. javascript 区分对象类型

    在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种.对于数组. ...

  6. 还原bak到localdb的问题:The logical database file cannot be found ldf

    主要环境相关因素:win7,ms sql 2012,ms localdb,msms 2012. 步骤: 1,让DBA给一个bak文件到本地来做测试,DBA按自己的工作流程得到bak文件. 2,在msm ...

  7. NideShop项目的安装部署教程

    本文档为微信小程序商城NideShop项目的安装部署教程,欢迎star NideShop商城api服务:https://github.com/tumobi/nideshop NideShop微信小程序 ...

  8. Jenkins HA高可用参考

    商用版Jenkins(CloudBee)提供HA插件,开源版本可以借助etcd服务发现+心跳脚本+sync的方式实现高可用.

  9. WebLogic 两处任意文件上传漏洞动态分析(CVE-2018-2894)

    0x01 前言 CNCERT前几天发公告称发现Oracle公司出品的基于JavaEE结构的中间件WebLogic产品存在一个远程上传漏洞,并得到了厂商的确认,危害程度评分高达9.8分.鉴于厂商已进行了 ...

  10. 从0开始学习Unity的学习笔记(I 界面学习和简单模型拼装)

    先给一个大致今天学习的图,然后后面是细节 1.下载Unity :官网下载需要版本 2.Unity安装:一定不要有中文路径:一台电脑可以安装不同版本的Unity,但是要安装在不同的文件夹下: 3. 新建 ...