80

为了在我们公司内进行 python 项目,我需要制作一个可安装的发行版。

这应该包括:

  • 我的项目的鸡蛋或 whl
  • 项目的每个依赖项的鸡蛋或 whl
  • (可选)生成一个 requirements.txt 文件,列出此版本的所有可安装组件

是否有一个简单的插件(例如 bdist_wheel 的替代品)不仅可以编译一个轮子,还可以编译该项目的组件?

显然我可以编写这个脚本,但我希望可能有一个捷径可以在更少的步骤中构建包 + 依赖项。

这需要在 Windows + Linux 上的 Python 2.7 上工作。

4

3 回答 3

91

您需要setup.py为您的包创建一个文件。确保您安装了最新的 setuptools 和 pip。然后运行以下命令:

python setup.py bdist_wheel

这将为您的包创建一个轮子文件。这假设您没有 C/C++ 头文件、DLL 等。如果有,那么您可能还有很多工作要做。

要获取依赖项,您需要创建一个requirements.txt文件并运行以下命令:

pip wheel -r requirements.txt

如果您的包不在 PyPI 上,那么您必须手动将包的 wheel 文件复制到此命令创建的 wheel 文件夹中。有关更多信息,请参阅以下优秀文章:

于 2014-09-26T19:28:39.930 回答
69

使用最新的pipand wheel,您可以简单地运行

pip wheel .

在您的项目文件夹中,即使您的应用程序不在 PyPi 上。所有轮子都将存储在当前目录 ( .) 中。

要更改输出目录(例如,./wheels),您可以使用以下-w / --wheel-dir选项:

pip wheel . -w wheels

pip 文档中列出了所有可用的选项。

于 2015-12-03T00:13:16.400 回答
3

使用诗歌,您可以在项目根目录中的文件中定义有关项目的依赖项和元数据,称为pyproject.toml

[tool.poetry]
name = "my-project"
version = "0.1.0"
description = "some longer description"
authors = ["Some Author <some@author.io>"]

[tool.poetry.dependencies]
python = "*"

[tool.poetry.dev-dependencies]
pytest = "^3.4"

要将您的项目构建为轮子,请执行poetry build

$ poetry build

Building my-project (0.1.0)
- Building sdist
- Built my-project-0.1.0.tar.gz

- Building wheel
- Built my-project-0.1.0-py3-none-any.whl

dist/使用轮子为您的项目创建一个文件夹。

于 2021-02-24T07:03:17.050 回答