如何打包和分发Python程序(.py源代码),以便其他开发人员可以轻松安装所有必需的依赖项?

18 浏览
0 Comments

如何打包和分发Python程序(.py源代码),以便其他开发人员可以轻松安装所有必需的依赖项?

我正在开发一个Python应用程序,使用了一些通过pip安装的包,例如Flask、requests、PIL。

那么,我该如何分发我的程序,以便其他人可以轻松安装每个必需依赖项/包,并在每台计算机上使其运作?setup.py是否符合我的需求?如果是这样,能否请您解释一下它的作用并提供一个可以实现我的目标的示例setup.py?

PS:我还有一个小问题:我需要在我的程序的顶级文件夹中提供一个__init__.py文件吗,还是只需要在子目录中提供即可?

admin 更改状态以发布 2023年5月24日
0
0 Comments

根据这里的文档

setup.py

还有另一种Python库的依赖关系规范,称为setup.py。Setup.py是分发和安装Python库的标准。如果您正在构建Python库,比如requests或underwear,您必须包含setup.py,以便依赖管理器可以正确地安装库以及库的其他依赖项。在Python社区中仍然存在相当大的混淆,关于requirements.txt和setup.py之间的区别,请阅读这篇写得不错的文章以获取进一步的澄清。

此外,也可以参考以下内容:

什么是setup.py?

您可以查看这个示例,以了解如何制作您的setup.py:

https://github.com/pypa/sampleproject/blob/master/setup.py

另外,这里有一个指南:

https://pythonhosted.org/an_example_pypi_project/setuptools.html

0
0 Comments

在不太遥远的过去,我使用这个指南学习如何打包和分发我的Python代码,然后一些好心人创建了flit,它使我可以在三个步骤中完成整个过程。

$pip install flit

创建我的元数据文件:

[metadata]
author=Some guy
author-email=some-email@nowhere.com
home-page=https://github.com/someuser/somepackage
requires=requests
requires-python= >=3
description-file=README.rst
classifiers=Intended Audience :: Developers
    License :: OSI Approved :: BSD License
    Programming Language :: Python :: 3
    Topic :: Software Development :: Libraries :: Python Modules

发布我的包:

$pip flit publish

完成啦!!!

0