Как указать файлы колес для ОС в Pipfile
Я пытаюсь использовать pipenv и pytorch.
Чтобы установить Pytorch в Windows, я должен написать следующие коды в Pipfile:
[packages]
torch = {file = "http://download.pytorch.org/whl/cpu/torch-0.4.1-cp37-cp37m-win_amd64.whl"}
Тем не менее, файл колеса отличается для Linux.
[packages]
torch = {file = "http://download.pytorch.org/whl/cpu/torch-0.4.1.post2-cp37-cp37m-linux_x86_64.whl "}
Как указать их обоих в Pipfile?
0 ответов
В этой статье показано, как структурировать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-машине я сделалecho 'hello' >
в файл Windows WHL и pipenv
был доволен этим.