上传自己的包到pypi
工程结构
/project
/module_A
__init__.py
xxx.py
setup.py
LICENSE
README.md
requirements.txt
MANIFEST.in
- setup.py 后面详细说
- LICENSE 采用的开源协议
- README.md 在setup.py里可以读取这个文件作为在pypi上的介绍页面的内容,看了setup.py内容之后发现从任何文件读都可以,不一定是README.md。
- requirements.txt 项目的依赖库
- MANIFEST.in 打包为sdist(源码包)的时候要包含或者排除哪些文件,可以根据语法写在里面。官方文档
setup.py
import setuptools
with open("README.md", "r", encoding='utf-8') as fh:
long_description = fh.read()
setuptools.setup(
name="fear-quant-lib",
version="0.0.1",
author="goldencold",
author_email="[email protected]",
description="quant fear of market",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/jscrapy/quantlib",
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
install_requires=[
'sqlalchemy',
'python-dateutil',
'python-levenshtein',
'requests',
]
python_requires='>=3.7',
)
打包过程
python setup.py check
检查有没有错误python setup.py sdist bdist_wheel
sdist是源码包,bdist_wheel 是预编译好的包,两者同时存在的情况下pip优先选择wheeltwine upload dist/*
上传打好的包,会让你输入pypi的用户密码, twine如果没有,要用pip安装一下。
其他问题
- 如何不上传只是把打包好的文件安装到本地库里
python setup.py install
- 如何更新本地库?
pip install --upgrade module-name