【问题标题】:How to specify os-specific wheel files in the Pipfile如何在 Pipfile 中指定特定于操作系统的轮文件
【发布时间】:2019-01-23 09:07:46
【问题描述】:

我正在尝试使用 pipenv 和 pytorch。

要在 windows 中安装 pytorch,我必须在 Pipfile 中写入以下代码:

[packages]
torch = {file = "http://download.pytorch.org/whl/cpu/torch-0.4.1-cp37-cp37m-win_amd64.whl"}

但是,对于 linux,wheel 文件是不同的。

[packages]
torch = {file = "http://download.pytorch.org/whl/cpu/torch-0.4.1.post2-cp37-cp37m-linux_x86_64.whl "}

如何在 Pipfile 中同时指定它们?

【问题讨论】:

    标签: python pip pytorch pipenv pipfile


    【解决方案1】:

    This article 演示了如何构建您的Pipfile 以跨多个平台使用pytorch。我调整了他们的示例以处理我本地文件系统上的 whl 文件:

    [packages]
    pyfoo = {path = "./../pyfoo/dist/pyfoo-1.1.0-cp37-cp37m-linux_x86_64.whl", platform_system = "== 'Linux'"}
    pyfoo-win = {path = "./../pyfoo/dist/pyfoo-1.1.0-py3-none-any.whl", platform_system = "== 'Windows'"}
    

    在这种情况下,pyfoo 是使用python setup.py buildpython setup.py bdist_wheel 构建的内部库。

    本文使用某种pipenv 生成的哈希代替pyfoo-win。我无法强制 pipenv 生成该哈希,因此我创建了自己的字符串。它可能只是锁定文件中哈希的前缀。

    注意:这种方法对我有用,但有一个缺点:安装软件包时,两个 whl 文件都需要存在。 pipenv sync 如果其中一个丢失,则炸弹会消失,即使它实际上只需要两者之一。有趣的是,无关文件的内容似乎并不重要。在我的 linux 机器上,我对 windows whl 文件做了一个echo 'hello' >pipenv 对此很满意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-19
      • 2011-02-23
      • 2017-07-29
      • 1970-01-01
      相关资源
      最近更新 更多