python打包发布到手机_如何将自己的Python代码打包发布到pypi上

展开全部

什么是pypi

简单的说pypi是一个python包的仓库,里面32313133353236313431303231363533e59b9ee7ad9431333365636561有很多别人写好的python库,你可以通过easy_install或者pip进行安装,方便用户更方面的使用你的代码模块。

将代码打包并上传到pypi上,大体上分为以下几步:

1、整理代码的目录结构,方便打包和python的import,为了方便引用,需要将代码模块变成一个包,所以需要将功能代码用目录来整合方便引用,并且需要创建__init__文件,__init__中可以没有内容,也可以在__init__文件中进行import(from .extractor import Document)操作,以减少整体模块引用时import的层数,避免错误。[html] view plain copy

├── ./tidypage

│   ├── ./tidypage/cleaners.py

│   ├── ./tidypage/extractor.py

│   ├── ./tidypage/__init__.py

│   └── ./tidypage/titles.py2、功能模块的目录整理好后,就可以开始整理和添加发布到pypi上所使用的文件了tidy_page

├── LICENSE

├── README.rst

├── requirements.txt

├── setup.py

├──tidypage

│   ├──cleaners.py

│   ├──extractor.py

│   ├──__init__.py

│   └──titles.py就是将原来的目录深移一层,文件夹名称可以根据自己意愿。然后在到第一层的目录下创建些特殊文件,具体你可以看看下面这个文件结构你就明白了

LICENSE文件是授权文件,比如:MIT license, APACHE license

README.rst 文件想必大家都不陌生,其实就是项目介绍和使用说明

setup文件才是重点,是python模块安装所需要的文件,它的格式如下:#!/usr/bin/env python

from __future__ import print_function

from setuptools import setup, find_packages

import sys

setup(

name="tidy-page",

version="0.1.1",

author="Desion Wang",

author_email="[email protected]",

description="html text parser,get the content form html page",

long_description=open("README.rst").read(),

license="MIT",

url="https://github.com/desion/tidy_page",

packages=['tidypage'],

install_requires=[

"beautifulsoup4",

lxml_requirement

],

classifiers=[

"Environment :: Web Environment",

"Intended Audience :: Developers",

"Operating System :: OS Independent",

"Topic :: Text Processing :: Indexing",

"Topic :: Utilities",

"Topic :: Internet",

"Topic :: Software Development :: Libraries :: Python Modules",

"Programming Language :: Python",

"Programming Language :: Python :: 2",

"Programming Language :: Python :: 2.6",

"Programming Language :: Python :: 2.7",

],

)NAME 名字,一般放你包的名字即可PACKAGES 包含的包,可以多个,这是一个列表DESCRIPTION 关于这个包的描述LONG_DESCRIPTION 参见read方法说明KEYWORDS 关于当前包的一些关键字,方便PyPI进行分类。AUTHOR 谁是这个包的作者,写谁的名字吧AUTHOR_EMAIL 作者的邮件地址URL 你这个包的项目地址,如果有,给一个吧,没有你直接填写在PyPI你这个包的地址也是可以的VERSION 当前包的版本,这个按你自己需要的版本控制方式来LICENSE 授权方式INSTALL_REQUIRES 模块所依赖的python模块

文中的classifiers的内容并不是随便填写的,你需要参照本文参考文档中的PyPI Classifiers来写

3、开始使用Distutils进行打包

为了保证效果,在打包之前我们可以验证setup.py的正确性,执行下面的代码

python setup.py check

输出一般是running check如果有错误或者警告,就会在此之后显示没有任何显示表示Distutils认可你这个setup.py文件。

如果没有问题,那么就可以正式打包,执行下面的代码:

python setup.py sdist

执行完成后,会在顶层目录下生成dist目录和egg目录tidy_page

├── tidy_page/dist

│   ├── tidy_page/dist/tidy-page-0.1.0.tar.gz

│   └── tidy_page/dist/tidy-page-0.1.1.tar.gz

├── tidy_page/LICENSE

├── tidy_page/README.rst

├── tidy_page/setup.py

├── tidy_page/tidypage

│   ├── tidy_page/tidypage/cleaners.py

│   ├── tidy_page/tidypage/extractor.py

│   ├── tidy_page/tidypage/__init__.py

│   └── tidy_page/tidypage/titles.py

├── tidy_page/tidy_page.egg-info

│   ├── tidy_page/tidy_page.egg-info/dependency_links.txt

│   ├── tidy_page/tidy_page.egg-info/PKG-INFO

│   ├── tidy_page/tidy_page.egg-info/requires.txt

│   ├── tidy_page/tidy_page.egg-info/SOURCES.txt

│   └── tidy_page/tidy_page.egg-info/top_level.txt4、打包完成后就可以准备将打包好的模块上传到pypi了,首先你需要在pypi上进行注册 goto PyPI Live

注册完成后,你需要在本地创建好pypi的配置文件,不然有可能会出现使用http无法上传到pypi的问题

Create a .pypirc configuration file,在用户的home目录下创建.pypirc文件,文件的内容如下

[distutils]index-servers =  pypi[pypi]repository=https://pypi.python.org/pypiusername=your_usernamepassword=your_passworchmod 600 ~/.pypirc

python setup.py register -r pypi在pypi上注册模块

python setup.py sdist upload -r pypi

上传python文件包,没有问题你就可以在pypi上看到你上传的包了并且可以使用pip搜索和install你的python包了

你可能感兴趣的:(python打包发布到手机)