需求:
寫了一堆自定義的模塊,由於較爲底層,其他模塊想import的時候是十分悲劇的,各種找不到有木有,換個路徑就鬱悶,換臺機器就悲劇
想類似python第三方模塊一樣,一個setup.py搞定,就能隨便import
實現:
python distribution,然後得到一個包了,使用setup.py install安裝
然後,使用時候直接import就ok了.
1.創建目錄結構
假設我們的module是distribution_test.py
建一個目錄,目錄名與module同名
結構
distribution_test
|- distribution_test.py
文件裏我只放了一行代碼:
print("Hello,this is a distribution test")
2.創建setup.py
在distribution_test目錄下編輯setup.py
內容:
from distutils.core import setup
setup(
name = "distribution_test",
version = "0.0.1",
py_modules = ["distribution_test"],
author = "wklken",
author_email = "[email protected]",
url = "http://justtest",
description = "just a sample of distribution",
)
name是打完包後包名
py_modules包含模塊名列表,每個模塊必須在文件夾下存在對應的 模塊.py文件
例如上面這個配置,需要在文件夾下有一個
distribution_test.py
若是配置爲py_modules = ["a", "b"]
則目錄下要有 a.py b.py 兩個文件
注意哦,否則一會install會報錯的
其他看着填吧
3.build
執行$python setup.py sdist
然後得到目錄:
distribution_test
|-distribution_test.py
|- MANIFEST
|-setup.py
|-dist
|-distribution_test-0.0.1.tar.gz
可以看看壓縮包裏面的文件結構:
4.安裝:
在當前目錄下(distribution_test)
執行:
$sudo python setup.py install
這樣就放到了/usr/lib/python下了,sys.path
5.查看效果:
6.
要挪機器?
只要把你所要打包的module的py文件放到目錄下,書寫相應的setup.py,執行python setup.py sdist
然後壓個包,扔到對應機器上
解包
python setup.py build
sudo python setup.py install
【同安裝第三方模塊步驟】