#python #git #pip #python-import
#python #git #pip #python-импорт
Вопрос:
Я установил пакет Python, используя pip из git. Для достижения этой цели я добавил команду -e git <link>#<egg>
в свой requirements.txt . Pip устанавливает этот пакет, но не так, как я хотел бы его иметь.
Первая проблема: я использую виртуальную среду. Обычно пакеты заканчиваются в <env>/Lib/site-packages
. Этого не происходит, он заканчивается в <env>/src
. Это затрудняет импорт.
Вторая проблема: src
папка также создается в моем реальном проекте, над которым я работаю.
Обе вещи отличаются от установки пакетов из других источников, таких как PyPI. Есть ли способ установить мои собственные пакеты через git таким же образом? Я фактически создал колесо и tar.gz , но я не знаю, как их установить…
Комментарии:
1. Есть ли у вас
setup.py
илиsetup.cfg
в вашем проекте? Если нет, пожалуйста, проверьте setuptools .2. Какой проект вы имеете в виду? Тот, который я хочу импортировать с помощью git, или тот, над которым я работаю? У меня есть setup.py и использовал setuptools для сборки wheel и sdist.
3. в site-packages у вас должны получиться
pkgname.egg-link
иeasy-install.pth
файл — он устанавливается в site-packages, просто с помощью какого-либо взлома pth (из-за редактируемой установки через-e
)4. @AnthonySottile вы правы, я нашел файлы, которые вы указали в site-packages. Я никогда не замечал их раньше. Но как это мне поможет?
Ответ №1:
комментарий @AnthonySottile указал мне правильное направление: -e
опция делает установленный пакет редактируемым, чего я не хотел. На самом деле он работает без него! Итак, если вы хотите избежать появления src
папок повсюду — загрузите из git без опции -e: git <link>#<egg>
К сожалению, я не нашел никакой документации для этого… поэтому не стесняйтесь публиковать более подробный ответ или добавлять к этому.
Ответ №2:
Следующий формат указания местоположения git https в requirements.txt сработало для меня:
pycocotools@git https://github.com/gautamchitnis/cocoapi.git@cocodataset-master#subdirectory=PythonAPI
Но сначала мне пришлось установить numpy
и Cython
, чтобы установка этого пакета прошла успешно. setuptools
уже был установлен, на это тоже может потребоваться внимание.
PS C:UsersuserDocumentsproject> pip install -r requirements.txt
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com, https://download.pytorch.org/whl/cu113
Collecting pycocotools@ git https://github.com/gautamchitnis/cocoapi.git@cocodataset-master#subdirectory=PythonAPI
Cloning https://github.com/gautamchitnis/cocoapi.git (to revision cocodataset-master) to c:usersuserappdatalocaltemppip-install-ofosrylupycocotools_6c865fdd5be947bdaed6b1bb6e7ec022
Running command git clone -q https://github.com/gautamchitnis/cocoapi.git 'C:UsersuserAppDataLocalTemppip-install-ofosrylupycocotools_6c865fdd5be947bdaed6b1bb6e7ec022'
Running command git checkout -b cocodataset-master --track origin/cocodataset-master
Branch 'cocodataset-master' set up to track remote branch 'cocodataset-master' from 'origin'.
Switched to a new branch 'cocodataset-master'
# ... output of other packages
Building wheels for collected packages: pycocotools
Building wheel for pycocotools (setup.py) ... done
Created wheel for pycocotools: filename=pycocotools-2.0-cp39-cp39-win_amd64.whl size=82226 sha256=4fcb72a83132367541d71faa8f0fb5a838e910c017f9aa033d13c19aebaada61
Stored in directory: C:UsersuserAppDataLocalTemppip-ephem-wheel-cache-_ygd_748wheelsa65fec1eaf8c69abab5724baee819736e6d30adad774deb60736413b
Successfully built pycocotools