Published on

如何将python源码打包成pip安装包呢?

Authors

目录:

  • 项目目录结构
  • 打包配置
  • 安装使用

01 项目目录结构

现在你已经写好了一个工具的python源码,那么你将如何将它方便的给其它人使用呢?下面我来介绍setuptools中如何通过setup来将源码打包成安装包,然后通过pip install安装就可以使用了。 public/static/images/blog/如何将python源码打包成pip安装包呢?_01.png 源码目录如下:

Github Traffic
  • .venv是运行环境。
  • test目录是测试python代码。
  • data目录是测试数据。
  • models目录是模型文件,非python代码。
  • 其它目录是python源码。 现在我们需要将这个工具进行打包,并且不希望将test目录中的python文件打包进去,但是需要将models的非python文件打包进去。

02 打包配置

下面我们准备打包的配置文件:setup.py和MANIFEST.in。 setup.py文件如下:

from setuptools import setup, find_packages

setup(
    name='llama_index_plus',
    version='0.0.1',
    keywords=['llama-index', 'pip'],
    description='some description',
    packages=find_packages(),
    package_data={'llama_index_plus': ['models/damo/**']},
    install_requires=[
        'llama_index==0.10.23',
        'llama-index-llms-openai-like==0.1.3'
    ],
    classifiers=[
        'Intended Audience :: Developers',
        'Topic :: Scientific/Engineering :: Artificial Intelligence',
        'License :: OSI Approved :: MIT License',
        'Programming Language :: Python :: 3',
    ]
)

MANIFEST.in文件如下:

global-include models/**
exclude .venv/** test/**

models/**会递归的将models目录下的文件包含进来;然后排除test目录下的文件以及目录。然后就可以执行打包命令:

python setup.py sdist bdist_wheel

打包成功后,在dist目录下会有如下两个文件:

Github Traffic

llama_index_plus-0.0.1.tar.gz文件就可以用来安装了,它里面包含了models目录下的内容,而且去掉了test目录内容。

03 安装使用

现在我们可以在其它项目中通过pip命令安装我们的工具包。

pip安装命令:

pip install /path/mypackage-0.1.0.tar.gz

安装完成后就可以在该项目中使用工具包了。