Я пытаюсь использовать 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?
🤔 А знаете ли вы, что...
В Python есть инструменты для создания графиков и визуализации данных, такие как библиотеки Matplotlib и Seaborn.
Эта статья демонстрирует, как структурировать ваш 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
остался доволен этим.