小博客写写就烦了啊,虽然github免费啊,但是图片什么的整理好麻烦,又不想用太复杂的框架了,所以干脆附件了图片了都放七牛上了,当图床用了,不过每次都登录到上面再上传很麻烦啊,索性写了个小工具,上传然后返回链接,so方便啊,用的话点这里。
后来加工了下,可以方便的支持多个bucket的操作,也可以支持目录以及多个文件的上传,尽量简单,慢慢完善,工具不多说了。写完了一个,发布出去是最好的选择了,如果有别人也用到了那就更棒了。
之前一直也没有发布过模块,感觉应该挺复杂的,不管了一点点来吧,发布python包可以有多种方法,distutils,setuptools等,鉴于setuptools可以算是前者的增强版,就用这个吧。
首先整理下自己代码的目录结构:
1 2 3 4 5 6 7 8 9 10 11 12 13
| ▶ tree qnupload qnupload ├── etc │ └── qnupload │ └── qnupload.conf ├── LICENSE ├── MANIFEST.in ├── README.rst ├── setup.py └── src └── qnupload ├── __init__.py └── qnupload.py
|
首先对自己的源码选择好license,写好自述文件(README),MANIFEST.in用来指定包额外需要的文件,这里我用来包含配置文件的目录etc。最主要的是包的根目录下的安装脚本setup.py了。
具体setup.py中的参数可以参考这里,和这里。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| from setuptools import setup, find_packages
VERSION = '1.2.3'
setup( name = 'qnupload', version = VERSION,
description = 'Tool to upload file to Qiniu cloud',
keywords = 'python qiniu upload cli',
author = 'cheneydc', author_email = 'cheneydc@gmail.com',
url = 'https://github.com/cheneydc/qnupload',
license='MIT',
package_dir = {'':'src'},
packages=find_packages('src'),
include_package_data=True,
entry_points={ 'console_scripts':[ 'qnupload = qnupload.qnupload:main', ] },
install_requires=[ 'qiniu', ], data_files=[ ('/etc/qnupload', ['etc/qnupload/qnupload.conf']), ], )
|
setup.py完成就可以在本地安装测试下了:
如果想上传包到pypi的话,现在pypi上进行注册(有一个测试服务器testpypi,如果使用的话需要单独进行注册)
在本地的~目录下建立.pypirc
文件,主要填写注册服务器的用户名以及密码进行验证:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [distutils] index-servers = pypi pypitest
[pypi] repository=https://pypi.python.org/pypi username=username password=password
[pypitest] repository=https://testpypi.python.org/pypi username=username password=password
|
进行提交:
1 2
| sudo python setup.py register -r pypi sudo python setup.py sdist upload -r pypi
|
这样就将自己的包提交到pypi上了,可以通过easy_instal和pip进行安装啦。