先看一个简单的python项目文件目录
.
├── pip_setup
│ ├── __init__.py
│ └── ext
│ └── __init__.py
└── setup.py
pip_setup就是所需要打包的python文件。我们关注的是setup.py这个文件,这个是打包的关键
from setuptools import setup, find_packages
setup(
name='pip_setup',
version='0.1.0',
description='just for test',
classifiers=[
'License :: OSI Approved :: MIT License',
'Programming Language :: Python',
'Intended Audience :: Developers',
'Operating System :: OS Independent',
],
author='bin381',
url='https://github.com',
author_email='',
license='MIT',
packages=find_packages(),#需要处理哪里packages,当然也可以手动填,例如['pip_setup', 'pip_setup.ext']
include_package_data=False,
zip_safe=True,
)
以上是一个简单的setup.py文件配置,详细的参数配置可以参考setuptool HomePage
python setup.py check
可以检查setup.py是不是正确,如果只输出running check,那么就ok了
python setup.py dist
会将项目打包成一个tar.gz文件
pip install(pip install)
关于pip install,这里说一点关于安装自己的库(没有发布到pypi上)。这里假设Proj_A项目需要安装库Library_B,一般来说我们可以在Proj_A的requirement.txt里面加入一行Library_B,然后执行pip isntall -r requirement.txt就可以安装库Library_B,当然Library_B必须先上传到PYPI上才能这么安装。如果Library_B并没有上传到PYPI,pip支持VCS(版本控制系统),所以我们还能安装git等上面的项目。所以requirement.txt可以加上这样的一行git+https://github.com/sample/Library_B.git,这里有个小坑就是如果加上-e参数,这个库会安装到“<venv path>/src/SomeProject”上(参考vcs-support)