Установка пакета Python с использованием pip к источнику не создает символическую ссылку

#virtualenv #pip

#virtualenv #pip

Вопрос:

Итак, я конвертирую с помощью pip и virtualenv. Одна из вещей, которые я обнаружил, заключается в том, что когда я использую requirements.txt с содержанием, которое выглядит так, последующие pip -E -r requirements.txt работы выполняются по назначению..

 PIL==1.1.7
chardet==1.0.1
distribute==0.6.14
django-extensions==0.6
django-profiles==0.2
 

Но когда вы начинаете увлекаться своим requirements.txt при извлечении исходных деревьев наблюдается следующее поведение. 1) Он помещает источник в дерево «source». (Это хорошо) 2) Не удается создать символическую ссылку на это в дереве пакетов сайта, а вместо этого создать *.link (.ie django-debug-toolbar.egg-link )

 -e git https://github.com/django-debug-toolbar/django-debug-toolbar.git@9067568b0bbf0c39322f5b761b05463685355b4f#egg=django_
debug_toolbar-dev
-e hg https://bitbucket.org/ubernostrum/django-registration@fad7080fe76955e7d0d3c97bc468ea8360260a6b#egg=django_registration
-dev
-e git://github.com/yourcelf/django-registration-defaults.git@df80e13fd5f4ee3c96d4508fa12278c47c660c37#egg=django_registrati
on_defaults-dev
 

Проблема в том, что теперь мне нужно создать символическую ссылку на исходное дерево из дерева пакетов сайта.
Чтобы исправить это, я перехожу к дереву пакетов сайта и начинаю создавать символические ссылки обратно в дерево исходных текстов.

Я уверен, что есть лучший способ сделать это — может кто-нибудь, пожалуйста, просветите меня??

Комментарии:

1. Я столкнулся с той же проблемой, вы выяснили, в чем проблема?

2. Открытая ошибка pip по этой проблеме: github.com/pypa/pip/issues/435

3. Вероятно, вы хотите прекратить использование pip -E ; это по своей сути не работает, особенно с —no-site-packages virtualenvs (который теперь используется по умолчанию в virtualenv 1.7). Он уже удален в версии для разработки pip и исчезнет в следующем выпуске. Вместо этого просто используйте копию pip, которая автоматически устанавливается внутри каждого virtualenv.

Ответ №1:

Вам вообще не нужно создавать символическую ссылку, так называемые *.egg-link файлы в каталоге пакетов сайта virtualenv будут действовать как символическая ссылка на уровне Python (ну, на самом деле setuptools).

РЕДАКТИРОВАТЬ: я добавил немного справочной информации здесь: http://github.com/pypa/pip/issues/435

Комментарии:

1. Вы знаете, как это работает? Это идиома setuptools? Неважно — ваш ответ здесь (github.com/pypa/pip/issues/435 ) предоставил все необходимые ссылки! Потрясающе