为python项目构建一个轮子/蛋和所有依赖项



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

这应包括:

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

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

很明显,我可以编写这个脚本,但我希望有一条捷径可以用更少的步骤构建包+依赖项。

这需要在Windows+Linux上的Python 2.7上运行。

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

python setup.py bdist_wheel

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

要获得依赖项,您需要创建一个requirements.txt文件并运行以下程序:

pip wheel .

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

  • http://lucumr.pocoo.org/2014/1/27/python-on-wheels/

使用最新的pipwheel,您只需运行

pip wheel .

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

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

pip wheel . -w wheels

所有可用的选项都列在pip文档中。

使用诗歌,您可以在项目根目录中的一个名为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/文件夹。

相关内容

  • 没有找到相关文章

最新更新