包括python包dependecy作为executab

2024-04-26 18:09:01 发布

您现在位置:Python中文网/ 问答频道 /正文

目前我的python包不依赖于wmi包,可以通过

pip install mypackage

如果我在wmi包上添加依赖项,这可能会失败,因为当我尝试通过pip安装wmi时,我遇到了错误,因为我没有安装visual studio 2008…并且我只使用二进制发行版安装了它。 我是否可以在我的软件包中包含并安装wmi的二进制版本?你知道吗

主要的问题是,如果人们无法通过pip命令安装我的软件包,他们只会避免使用我的软件包。你知道吗


Tags: installpip命令版本错误二进制wmistudio
1条回答
网友
1楼 · 发布于 2024-04-26 18:09:01

首先要考虑的是为什么要考虑添加wmi包-因为如果您使用它,它是MS-Windows特定的,或者任何依赖它的东西,那么您的包也将是MS-Windows特定的。你知道吗

有没有其他方法来实现你想做的事情,仍然是跨平台的?如果不是,并且您必须使用它,那么您可以在文档中包括一个前提语句,最好是在setup.py中,告诉人们他们需要安装一个wmi的工作副本,希望有一个指向二进制发行版的指针。你知道吗

另一种方法是——如果您使用的是足够晚的python版本——以python wheels的形式构建和分发包。由于wheels允许包含C包元素,而不依赖于目标系统上的编译器—有关详细信息,请参见pep-0427&;here。你知道吗

创建控制盘:

您需要运行python2>;2.6或python3,pip>;=1.4和setuptools>;=0.8。

基本上,假设你有设置.py这将创建您的(源)分发,以便上载到pip,其中包括:

python setup.py sdist

然后,您可以创建一个二进制发行版,该发行版应包含当前python版本包的所有依赖项:

python setup.py bdist_wheel

这将构建一个包含.pyc文件和来自所需包的二进制文件的分发控制盘。你知道吗

但是,对于您计划支持的每个python版本,您都需要这样做一次,(virtualenv对于这一点很神奇),如果您还计划支持64位或mac,那么在每个平台上都需要这样做。当然,除非您成功地创建了一个纯python包,该包将在没有2to3的情况下在python 2和python 3下运行,在这种情况下,您可以构建一个通用轮子—显然,如果您需要.c扩展,您就不能这样做。你知道吗

有关控制盘的详细信息,请参见Wheel - Read The Docs。你知道吗

相关问题 更多 >