Изменить, где setuptools загружает файлы .egg

Я новичок в Python, но когда я использую setuptools для установки .eggs для проекта, он помещает их все в текущий рабочий каталог (каталог верхнего уровня проекта). Это засоряет каталог и затрудняет перемещение их всех вместе, отдельно от остального проекта.

Есть ли способ загрузить .eggs в подкаталог?

РЕДАКТИРОВАТЬ | @Kos предлагает использовать virtualenv. Как ни странно, это все еще загружает каталоги .egg за пределы виртуальной среды.

(.virtualenv)default@232f7f34a1dd:/projects/python/tmp/sql$ which python
/projects/python/tmp/sql/.virtualenv/bin/python
running test)default@232f7f34a1dd:/projects/python/tmp/sql$ python setup.py test
Searching for nose
Reading https://pypi.python.org/simple/nose/
Best match: nose 1.3.3
Downloading https://pypi.python.org/packages/source/n/nose/nose-1.3.3.tar.gz#md5=42776061bf5206670cb819176dc78654
Processing nose-1.3.3.tar.gz
Writing /tmp/easy_install-0eX3mf/nose-1.3.3/setup.cfg
Running nose-1.3.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-0eX3mf/nose-1.3.3/egg-dist-tmp-MJ1xDk
no previously-included directories found matching 'doc/.build'

Installed /projects/python/tmp/sql/nose-1.3.3-py2.7.egg
(.virtualenv)default@232f7f34a1dd:/projects/python/tmp/sql$

Обратите внимание на «Установлен /projects/python/tmp/sql/nose-1.3.3-py2.7.egg»? Это должно быть где-то в разделе «Установлено /projects/python/tmp/sql/.virtualenv/.....».


person d11wtq    schedule 13.06.2014    source источник


Ответы (1)


Обычно вы создаете virtualenv в любом месте по вашему выбору и устанавливаете туда пакеты.

person Kos    schedule 13.06.2014
comment
Спасибо! Я слышал о virtualenv, но понятия не имел, что он делает. - person d11wtq; 13.06.2014
comment
Хм. Я установил virtualenv через pip, а затем создал каталог .virtualenv в своем проекте. Я поместил .virtualenv/bin в свой $PATH и убедился, что which python показывает .virtualenv/bin/python. Но когда я запускаю python setup.py test, файл "nose-1.3.3-py2.7.egg" загружается в мой текущий рабочий каталог (каталог проекта), а не в virtualenv. - person d11wtq; 13.06.2014
comment
вы сначала активировали свой virtualenv? - person Padraic Cunningham; 13.06.2014
comment
Я действительно это сделал :) Смотрите мое редактирование в моем вопросе (подсказка отражает активацию). Я только что добавил «docker-py» в install_requires, и это загрузило 4-5 хороших яиц в мой текущий каталог. Похоже, setuptools игнорирует virtualenv или что-то в этом роде. Или мне не хватает некоторых важных переменных среды? - person d11wtq; 13.06.2014
comment
Копаясь в исходниках setuptools, он просто скачивает их в текущую директорию. Это жестко закодировано. github.com/jaraco/setuptools/blob/ - person d11wtq; 14.06.2014