分享

python 制作自定义包并安装到系统目录的方法

 YU304jx 2023-09-06 发布于江苏

Python 是一门流行的编程语言,灵活性高、易于学习,能够实现许多应用。在编写 Python 代码时,我们常常需要用到各种不同的模块。对于重复使用的代码,我们可以将它们打包成一个包,方便管理和调用代码。

本文将介绍 Python 制作自定义包并安装到系统目录的方法。下面是详细的步骤:

1.创建包目录结构

第一步是创建包的目录结构。在包的根目录下,应该包含一个 setup.py 文件和一个包的名称文件夹。包名称文件夹应该包含一个 __init__.py 文件和任何其他需要的 Python 模块。

假设我们创建一个名为 example_pkg 的包,目录结构应该是这样的:

example_pkg/
    setup.py
    example/
        __init__.py
        module1.py
        module2.py
        ...
  • setup.py 文件里面应该包含一些元数据,如包的名称、版本等,要注意这些信息务必与包中使用的一致。

    example/__init__.py 是包的入口文件,其中可以定义包级别的变量和包级别的函数。
  • example/module1.py 等模块文件则是普通的 Python 模块,其中包含要共享的类和函数。

2.编写 setup.py

下一步是编写 setup.py 文件。这个文件描述了如何将你的包安装到系统上。其中包括一些元数据以及依赖项的描述(如果有的话)。

示例 1:

下面是一个最基本的 setup.py 文件:

from setuptools import setup, find_packages

setup(
    name='examplepkg',
    version='0.1',
    packages=find_packages(),
    install_requires=[],
    entry_points={
        'console_scripts': [
            'example = example_pkg.example.module1:main'
        ]
    }
)

在这个文件中,主要涉及到以下内容:

  • 导入了必要的函数和类,如setupfind_packages

  • 设置了包的名称、版本号和安装时所需的其他包。

  • 使用find_packages()函数自动查找包及其子包,并将其包含在packages列表中。

  • entry_points 部分描述了这个包含有可执行文件。在上面的例子中,我们将example绑定到了 example_pkg.example.module1:main。这意味着我们可以在终端运行 example,并运行example_pkg/example/module1.py中的main函数。

示例 2:

接下来,你可能需要更多的功能,如在不同 OS 上安装依赖项。下面是一个稍微更复杂的例子:

from setuptools import setup, find_packages

setup(
    name='examplepkg',
    version='0.1',
    packages=find_packages(),
    install_requires=[
        'numpy',
        'pandas',
        'matplotlib',
    ],
    platforms='any',
    extras_require={
        'web': ['flask', 'flask-login'],
        'data': ['pandas', 'numpy'],
        'image': ['opencv-python', 'pillow'],
    },
    classifiers=[
        'Development Status :: 5 - Production/Stable',
        'Environment :: Web Environment',
        'Intended Audience :: Developers',
        'License :: OSI Approved :: MIT License',
        'Operating System :: OS Independent',
        'Programming Language :: Python',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
        'Programming Language :: Python :: 3.8',
        'Programming Language :: Python :: 3.9',
        'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
        'Topic :: Software Development :: Libraries :: Python Modules',
    ],
)

这个文件在基础上增加了以下内容:

  • 添加了依赖项列表 install_requires。这意味着在安装时必须安装此列表中的所有库。

  • 使用 extras_require对其他依赖项进行了分类。例如,在安装 examplepkg时,如果需要的是 web 功能,需要使用以下命令来安装它: pip install examplepkg[web]

  • classifiers 通过提供各种元数据,使包更易于发现和分类。可以根据需要进行配置。

3.构建包

有了 setup.py ,现在可以开始构建包了。在包含 setup.py 的目录中运行以下命令:

python setup.py sdist bdist_wheel

这会构建一个源分发包和一个 wheel 文件,在 dist 文件夹中可以找到。生成的 wheel 文件能用于快速安装,并且在比源码分发包更加端到端。

4.安装包

最后一步是将包安装到你的系统上。可以使用以下命令:

pip install examplepkg-0.1-py3-none-any.whl

或:

pip install examplepkg-0.1.tar.gz

这将在系统上安装名为example_pkg的包,可以在 Python 的任何地方导入它。

以上就是 Python 制作自定义包并安装到系统目录的完整攻略。希望对你有帮助!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多