從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基礎教程