我正在尝试使用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中同时指定它们?
答案 0 :(得分:0)
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 build
和python setup.py bdist_wheel
构建的内部库。
本文使用了pipenv
代替的pyfoo-win
生成的某种哈希值。我无法强迫pipenv
生成该哈希,因此我创建了自己的字符串。它可能只是锁定文件中哈希的前缀。
注意:此方法对我有用,但有一个缺点:安装软件包时,两个whl
文件都必须存在。 pipenv sync
会炸掉其中之一,即使它确实只需要两者之一。有趣的是,无关文件的内容似乎无关紧要。在我的Linux机器上,我对Windows whl文件做了一个echo 'hello' >
,pipenv
对此感到满意。