如何指示pip安装带有nobinary标志的需求

2024-04-25 21:43:21 发布

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

我有一个我想打包的应用程序,它依赖于protobuf。protobuf的安装必须符合以下要求:

pip install protobuf --no-binary=protobuf protobuf

我如何将其包含在我的setup.py{}中

注意:我的需求要求此过程自动通过setup.py

我知道{a1}和{a2}

因此,我尝试在install_requires或requirements.txt中包含这些内容,但没有成功:

#requirements.txt
protobuf
--no-binary=protobuf

当我打包我的应用程序时,如何为--no-binary=protobuf protobuf的安装提供pip标志

更新: 我想要的是protobuf软件包按照我在以这种方式安装软件包时提到的方式安装:

`pip install my_package.whl`

Tags: installpipnopytxt应用程序a2过程
1条回答
网友
1楼 · 发布于 2024-04-25 21:43:21

使用requirements.txt文件安装

我想你可以简单地在同一行加上国旗。这对我很有用:

# requirements.txt

protobuf  no-binary protobuf
pandas

有了这个requirements.txt,protobuf的安装没有二进制文件,而pandas的安装仍然有.whl

通过运行pip install -r requirements.txt,您将获得如下内容:

$ pip install -r requirements.txt 
Collecting pandas
  ...
Collecting protobuf
  Using cached protobuf-3.17.3.tar.gz (228 kB)
Skipping wheel build for protobuf, due to binaries being disabled for it.
Installing collected packages: protobuf, pandas
    Running setup.py install for protobuf ... done
Successfully installed pandas-1.1.5 protobuf-3.17.3

在打包库中自动安装

如果希望包含对protobuf的依赖项而不使用二进制文件,并且正在使用setup.py文件打包库,则可以在setupinstall_requires参数中包含package@http://link/to/package.tar.gz

from setuptools import setup, find_packages

setup(
    name='your package`,
    version='0.1',
    packages=find_packages(),
    install_requires=[
        'click',
        'pyyaml',
        'protobuf@https://github.com/protocolbuffers/protobuf/releases/download/v3.17.3/protobuf-python-3.17.3.tar.gz'
    ]
)

此解决方案的缺点是它还指定依赖项的版本

希望这有帮助

相关问题 更多 >