- 把代碼放入知道目錄中
- 需要添加額外相關文件時在setup.py, data-files字段中定義
舉例
data_files= [('pdf2html',['./pdf2html/pdf2phtml/pdf2htmlEX/README.md','poppler-global.cpp'])]
- 生成安裝包
- 需要打包的目錄必須帶
__init__.py
- python setup.py sdist
- 在dist目錄中看到生成的安裝包
- 需要打包的目錄必須帶
- 根目錄下有requirements.txt
- cmd中cd到requirements.txt的根目錄
- pip install -r requirements.txt
cc注:
- 第4步是在另外一臺電腦上執(zhí)行安裝操作
- 關于setup.py的介紹负敏,可以參考以下文章
http://blog.konghy.cn/2018/04/29/setup-dot-py/
https://www.cnblogs.com/maociping/p/6633948.html - pip安裝庫到指定目錄的方法:
pip install packname -t xx/xx
或者
pip install --target xx/xx packname
setup.py各參數(shù)介紹:
--name 包名稱
--version (-V) 包版本
--author 程序的作者
--author_email 程序的作者的郵箱地址
--maintainer 維護者
--maintainer_email 維護者的郵箱地址
--url 程序的官網(wǎng)地址
--license 程序的授權(quán)信息
--description 程序的簡單描述
--long_description 程序的詳細描述
--platforms 程序適用的軟件平臺列表
--classifiers 程序的所屬分類列表
--keywords 程序的關鍵字列表
--packages 需要處理的包目錄(包含__init__.py的文件夾)
--py_modules 需要打包的python文件列表
--download_url 程序的下載地址
--cmdclass
--data_files 打包時需要打包的數(shù)據(jù)文件袜茧,如圖片桐愉,配置文件等
--scripts 安裝時需要執(zhí)行的腳步列表
--package_dir 告訴setuptools哪些目錄下的文件被映射到哪個源碼包而克。一個例子:package_dir = {'': 'lib'},表示“root package”中的模塊都在lib 目錄中维费。
--requires 定義依賴哪些模塊
--provides定義可以為哪些模塊提供依賴
--find_packages() 對于簡單工程來說果元,手動增加packages參數(shù)很容易,剛剛我們用到了這個函數(shù)犀盟,它默認在和setup.py同一目錄下搜索各個含有 __init__.py的包噪漾。
其實我們可以將包統(tǒng)一放在一個src目錄中,另外且蓬,這個包內(nèi)可能還有aaa.txt文件和data數(shù)據(jù)文件夾欣硼。另外,也可以排除一些特定的包
find_packages(exclude=["*.tests", "*.tests.*", "tests.*", "tests"])
--install_requires = ["requests"] 需要安裝的依賴包
--entry_points 動態(tài)發(fā)現(xiàn)服務和插件
setup.py參考
# -*- coding: utf-8 -*-
from setuptools import setup, find_packages
setup(
name = "pdf2html",
version = "1.2",
keywords = ("pdf2html", "xxx"),
description = "eds sdk",
long_description = "eds sdk for python",
license = "MIT Licence",
url = "http://pdf2html.com",
author = "pdf2html",
author_email = "pdf2html@gmail.com",
packages = find_packages(),
include_package_data = True,
platforms = "any",
#依賴包
install_requires = [],
#依賴的文件
data_files= [('pdf2html',['./pdf2html/pdf2phtml/pdf2htmlEX/README.md','poppler-global.cpp'])],
scripts = [],
entry_points = {
}
)