используйте относительный путь в файле require.txt для установки файла tar.gz с pip - PullRequest
18 голосов
/ 21 марта 2012

Мы используем файл require.txt для хранения всех необходимых внешних модулей.Каждый модуль, кроме одного, собран из Интернета.Другой хранится в папке, в которой находится файл require.txt.

Кстати, этот модуль можно легко установить с помощью установки pip

Я пробовал использовать это:

file:folder/module

или это:

file:./folder/module

или даже это:

folder/module

но всегда выдает ошибку.Кто-нибудь знает, какой правильный способ сделать это?

Спасибо

Ответы [ 2 ]

24 голосов
/ 16 октября 2012

В текущей версии pip (1.2.1) способы интерпретации относительных путей в файле требований неоднозначны и полужирны. В хранилище пипсов есть открытая проблема, которая более подробно объясняет различные проблемы и неясности:

https://github.com/pypa/pip/issues/328

Короче говоря, текущая реализация не соответствует описанию в документации пипа, поэтому на момент написания этой статьи не существует последовательного и надежного способа использования относительных путей в requirements.txt.

ЭТО СКАЗАЛ, поместив в мой requirements.txt следующее:

./foo/bar/mymodule

работает, когда есть setup.py на верхнем уровне каталога mymodule. Обратите внимание на отсутствие обозначения протокола file:: и включение ведущего ./. Этот путь не относится к файлу requirements.txt, а скорее к текущему рабочему каталогу. Поэтому необходимо перейти в тот же каталог, что и requirements.txt, а затем выполнить команду:

pip install -r requirements.txt
1 голос
/ 02 ноября 2018

На основе текущего рабочего каталога (при необходимости найдите с помощью os.getcwd ()) и относительного пути, указанного в файле требований.

Ваш файл требований должен выглядеть следующим образом:

fabric==1.13.1
./some_fir/some_package.whl
packaging==16.8

Обратите внимание, что это будет работать только для файлов .whl, а не .exe

Не забывайте следить за выводом установки pip на наличие ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...