从PyPI (Python Package Index)来的,官网是: https://pypi.python.org/pypi/
执行pip install terminaltranslator命令的时候,它就会去从官方网站搜terminaltranslator,搜到了就下载压缩包并解压安装,若是没有搜索到就会报错。python
众所周知的缘由,国内访问国外网站老是不那么顺畅,因而就有了PyPI镜像,国内有不少,我用过阿里云的,中科大的,豆瓣的。阿里云的同步的好像不够及时,中科大的好像很及时,因此我就用中科大的。那么,该怎么用这些镜像呢?git
方法1: 给pip加参数-i 后面跟镜像的url,可是要记住并每次都写这个url但是一件难事。
方法2: 编写配置文件~/.pip/pip.conf:github
[global] index-url = https://mirrors.ustc.edu.cn/pypi/web/simple
首先去官网注册你的帐号,不能师出无名总得留下你的大名嘛。注册地址:
https://pypi.python.org/pypi?%3Aaction=register_formweb
注册好后编写你的配置文件~/.pypirc工具
[distutils] index-servers = pypi pypitest [pypi] repository=https://pypi.python.org/pypi username=Your-Account password=Your-Password [pypitest] repository=https://testpypi.python.org/pypi username=Your-Account password=Your-Password
这里配置了两个地址,一个是PyPI Live,是正式发布Python包的;另外一个是PytPI Test 是用来正式发布以前验证你的包是否正常。学习
一般你的代码目录结构以下:网站
root-dir/ # 你的代码的根目录 setup.py setup.cfg LICENSE.txt README.md mypackage/ __init__.py foo.py bar.py baz.py
其中的setup.py就是安装包的文件,格式以下:阿里云
from distutils.core import setup setup( name = 'mypackage', packages = ['mypackage'], # 跟上面代码目录下面的包名一致 version = '0.1', description = 'A setup test package', author = 'veelion', author_email = 'veelion@gmail.com', url = 'https://github.com/veelion/mypackage', # 指向 github 仓库的URL keywords = ['testing', 'logging', 'example'], # 一些关键词 classifiers = [], )
setup能够从两个包里面调来使用,一个是上面用的distutils,另一个是setuptools,如:url
from setuptools import setup
这两个包功能基本同样,而setuptools支持wheel(将来包管理的趋势),因此通常用setuptools更好一些。再多说两句wheel,它是用来准备替换老的egg的,其中很好的一个优势是“二进制格式发布”,当包内含有C/C++写的扩展的时候能够把.so/.dll等二进制库打包进去,实现“一次编译,处处使用”的目标。省的用户编译时须要解决一堆依赖问题。spa
可是setuptools好像是不支持单文件包,即你的包只是一个.py文件而非上面说的是一个带__init__.py我目录。而distutils经过py_modules能够指定当个文件做为包。
上面说的是用setup.py管理Python包让其余人import用,而非在命令行下指向。
而terminaltranslator 是一个命令行工具,能够在setup.py里面不指定package而是指定scripts来把相关文件安装到bin目录下:
if __name__ == "__main__": from setuptools import setup setup( name='TerminalTranslator', version='0.8', author="Veelion chong", author_email="veelion@gmail.com", license='MIT', url='https://github.com/veelion/tt', description=("Linux terminal translating tool implemented in Python"), scripts=['t', 'tt', 'terminaltranslator.py'], )
这里还用到一个小tip,把terminaltranslator.py 连接为t和tt两个别名,这样命令行下使用起来更方便。 不过,好像Windows下不支持Linux的软连接,t和tt可能在Windows下出问题
首先,打包生成压缩包
python setup.py sdist
python setup.py bdist_wheel (distutils不支持这个wheel选项)
上传到PyPI:
python setup.py register #注册你的包,若是出现与已有包重名则报错 python setup.py upload
更新:在python3下面,python setup.py upload 已经无效,官方推荐用 twine 上传到pypi。
或者能够用twine (无需register,直接upload)
twine register dist/xxx.gz twine register dist/xxx.whl twine upload dist/*
python学习笔记整理于猿人学网站的python基础教程