zoukankan      html  css  js  c++  java
  • 造一个轮子然后安装到pypi上

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

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

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

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

       记录一下上传包的过程。

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

    一、准备好自己的模块

            

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

    二、编写setup.py

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

      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/

  • 相关阅读:
    python中 使用join()方法
    Python:数字类型和字符串类型的内置方法
    8道Python基础面试练习题
    用Python6种方法:给定一个不超过5位的正整数,判断有几位
    python网络编程:UDP方式传输数据
    Python
    wxPython
    css
    使用python-pillow替换图片中的单一颜色
    css
  • 原文地址:https://www.cnblogs.com/masako/p/10647973.html
Copyright © 2011-2022 走看看