Установить пакет с помощью pip из git в site-packages

#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