把自己的python脚本打包上传到PYPI

来源:互联网 发布:vb 从label标签输出 编辑:程序博客网 时间:2024/05/17 07:42

去年9月的时候,写了几个python脚本,用来从一家基金网站爬数据,然后进行分析,给出值得投资的若干只基金。分析的方法很简单,就是取前1个月,3个月,6个月,1年,2年和3年这所有种类的前100名或50名,然后取交集。能站在这交集中的,自然是表现比较稳定的基金。所以有时候交集实际为空。但这样简单的分析方法也很明显有一个缺陷,就是只要是近期表现好的基金,就很容易站在这交集中了。所以,实际上,这样的分析方法并不是很科学的。

Anyway,本文并不是要讨论如何找出一只优秀的基金,而是介绍下如何把自己的python脚本放到PYPI上。其实就是如何打包发布的问题。关于这一点,有很多前人的文章肯定要写的比我好了。为了节省关心如何打包发布的同学的时间,特列举几篇不错的文章如下:

http://www.ibm.com/developerworks/cn/opensource/os-pythonpackaging/index.html

http://woodpecker.org.cn/diveintopython3/packaging.html

http://ju.outofmemory.cn/entry/15968

http://www.cnblogs.com/Alex-Python-Waiter/archive/2012/09/21/2697445.html


关于本人的package,情况比较简单,所有的.py文件全部放到了一个叫做FundsData的文件夹下(package下),上层目录也叫FundsData(其实叫什么都可以),其下放了setup.py. 关于具体情况,请参见GitHub上的内容:https://github.com/FinixLei/FundsData

而setup.py 的内容如下:

from distutils.core import setupPACKAGE = "FundsData"NAME = "FundsData"DESCRIPTION = "This package can download funds data from http://huobijijin.com and then analyze the data for giving valuable funds."AUTHOR = "Finix Lei"AUTHOR_EMAIL = "finixlei@gmail.com"URL = "https://github.com/FinixLei/FundsData"VERSION = __import__(PACKAGE).__version__setup(    name=NAME,    version=VERSION,    description=DESCRIPTION,    # long_description=read("README.md"),    author=AUTHOR,    author_email=AUTHOR_EMAIL,    license="Apache License, Version 2.0",    url=URL,    packages=["FundsData"],    classifiers=[        "Development Status :: 3 - Alpha",        "Environment :: Web Environment",        "Intended Audience :: Developers",        "Operating System :: OS Independent",        "Programming Language :: Python",    ],    zip_safe=False,)

要想成功运行setup.py将自己的python脚本打包上传到PYPI上,首先要安装setuptools包。在Windows上只要下载个windows专用的python 2.7,自然就有了setuptools和distutils;而在Linux上,要自己用pip装一下,或者运行下python ez_setup.py来安装。至于哪里去弄ez_setup.py,网上一搜到处是,就不赘述了。

关于setuptools和distutils的区别,我这里的描述不够清晰,大家可以参看:http://www.cnblogs.com/aguncn/p/3427707.html


当有了distutils之后(一般都有,这是自带的),运行如下命令就可以在PYPI上注册、自己build并上传到PYPI上了:

python setup.py register sdist upload

但是,是如何连上PYPI的呢?当然,你要先注册一个帐号。然后写一个.pypirc文件如下,并将其放到~目录下:

[distutils]index-servers = pypi[pypi]username:xxxpassword:yyy

好了,一切成功后,你就可以看到类似这样的网页生成在PYPI上了:

https://pypi.python.org/pypi/FundsData


如README.md所述,使用pip的安装方法如下:

sudo pip install FundsData

运行方法为:

python -mFundsData.funds_data -hpython -mFundsData.funds_data


1 0
原创粉丝点击