Инсталиране на пакети Python от папка на локалната файлова система във virtualenv с pip
Възможно ли е да се инсталират пакети с помощта на pip от локалната файлова система?
Изпълних python setup.py sdist
за моя пакет, който създаде съответния tar.gz файл. Този файл се съхранява в моята система на адрес /srv/pkg/mypackage/mypackage-0.1.0.tar.gz
.
Сега във виртуална среда бих искал да инсталирам пакети, идващи от pypi или от конкретното локално място /srv/pkg
.
Възможно ли е това?
PS
Знам, че мога да задам pip install /srv/pkg/mypackage/mypackage-0.1.0.tar.gz
. Това ще проработи, но аз говоря за използването на местоположението /srv/pkg
като друго място, което pip да търси, ако напиша pip install mypackage
.
307
3
Какво ще кажете за::
например,
pip install -e /srv/pkg
където /srv/pkg е директорията от най-високо ниво, в която може да бъде намерен 'setup.py'.
Почти съм сигурен, че това, което търсите, се нарича опция
--find-links
.Въпреки това може да се наложи да генерирате фиктивен
index.html
за вашия локален индекс на пакетите, който съдържа линкове към всички пакети. Този инструмент помага:https://github.com/wolever/pip2pi
Това е решението, което в крайна сметка използвах:
Сглобих го от pip install examples, както и от Rikard's answer на друг въпрос. Аргументът "--pre" ви позволява да инсталирате непроизводствени версии. Аргументът "--no-index" предотвратява търсенето в индексите на PyPI. Аргументът "--find-links=." търси в локалната папка (може да е относителна или абсолютна). За отстраняване на грешки използвах аргументите "--log-file", "log.txt" и "-vv". Аргументът "--upgrade" ви позволява да инсталирате по-нови версии вместо по-стари.
Намерих и добър начин да ги деинсталирам. Това е полезно, когато имате няколко различни среди на Python. Това е същият основен формат, само че с използване на "uninstall" вместо "install", с предпазна мярка за предотвратяване на непреднамерени деинсталации:
Локалната папка съдържа тези файлове: install.py, uninstall.py, mypackagename-1.0.zip