У меня есть две библиотеки lib1 и lib2 и программа, которая их использует, program1. библиотеки имеют setup.py файлы, которые выглядят следующим образом:Как использовать пакеты в локальной файловой системе?
from distutils.core import setup
setup(name='lib1',
version='0.1.0',
maintainer='foven',
maintainer_email='[email protected]',
url='example.com/lib1',
packages=[
]
)
setup.py для lib2 явно заменяет Lib1 экземпляры с lib2, но в остальном то же самое.
Теперь program1 есть файл requirements.txt, который выглядит следующим образом:
-e ../lib1
-e ../lib2
Я хочу использовать две библиотеки из их расположения в файловой системе, так как я не готов поставить их в хранилище. При запуске pip install -r requirements.txt для program1 это работает.
Однако, если изменить Lib1/файл setup.py выглядеть следующим образом:
from distutils.core import setup
setup(name='lib1',
version='0.1.0',
maintainer='foven',
maintainer_email='[email protected]',
url='example.com/lib1',
packages=[
'axel'
]
)
и изменение program1/requirements.txt к этому:
axel == 0.0.4
-e ../lib1
-e ../lib2
работает пункт установить -r requirements.txt from program1 приводит к ошибке:
error: package directory 'axel' does not exist
Тем не менее, список пипов и задержка замораживания обе указывают на то, что th e пакет установлен.
Мне кажется, что пип не ищет аксель в обычном месте для установленных пакетов или в pypi, но у меня нет большого опыта в этом, поэтому я мог бы быть совершенно неправ. Если создать пустой каталог Lib1/аксель и запустить пункт установить -r requirements.txt для program1, кажется, работает:
Obtaining file:///C:/Users/foven/code/lib1 (from -r requirements.txt (line 2))
Obtaining file:///C:/Users/foven/code/lib2 (from -r requirements.txt (line 3))
Requirement already satisfied (use --upgrade to upgrade): axel==0.0.4 in c:\program files\python35\lib\site-packages (from -r requirements.txt (line 1))
Installing collected packages: lib1, lib2
Running setup.py develop for lib1
Running setup.py develop for lib2
Successfully installed lib1-0.1.0 lib2-0.1.0
Просто чтобы быть ясно, я буду вновь заявить о своей цели: я хочу, чтобы иметь возможность для использования двух библиотек, которые существуют только в локальном файле с программой, над которой я работаю. Что я делаю неправильно и как мне настроить эти библиотеки и программу для работы так, как я хочу?