setuptools ищет ложную зависимость

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

Мой setup.py ссылается на pywin32 для платформ win32, но даже когда я удаляю это, это не имеет значения. Я также удалил все остальные требования без каких-либо изменений в поведении. В моем setup.py нет ничего, кроме инициализации setuptools и вызова setup().

У меня активна виртуальная среда, и я попытался переключиться на новую чистую виртуальную среду без изменения поведения. Я вижу следующее, когда запускаю setup.py develop:

python setup.py develop
running develop
running egg_info
deleting foo.egg-info/requires.txt
writing foo.egg-info/PKG-INFO
writing top-level names to foo.egg-info/top_level.txt
writing dependency_links to foo.egg-info/dependency_links.txt
reading manifest file 'foo.egg-info/SOURCES.txt'
writing manifest file 'foo.egg-info/SOURCES.txt'
running build_ext
Creating /home/user/foo-env2/lib/python2.7/site-packages/foo.egg-link (link to .)
foo 1.0 is already the active version in easy-install.pth

Installed /home/user/magicdirectory/magic
Processing dependencies for foo==1.0
Searching for pywin32
Reading http://pypi.python.org/simple/pywin32/
Reading http://sf.net/projects/pywin32

Теперь, возможно, я случайно попытался установить яйцо win32 этого пакета в какой-то момент, но это было в исходной виртуальной среде, и я не могу понять, что это могло сделать, чтобы вызвать это.

Как это отладить? Откуда еще setuptools может искать зависимости?

ОБНОВЛЕНИЕ: похоже, что важно не имя каталога, а то, где он находится. Если я переместлю каталог пакета на один уровень выше, он будет установлен нормально. Рассматриваемый здесь каталог был удален и воссоздан несколько раз, поэтому он, похоже, не связан ни с чем внутри каталога.


person djs    schedule 10.06.2011    source источник


Ответы (1)


Попробуйте удалить *.egg-info в папке разработки dist. Если это не сработает, попробуйте начать с новой, нетронутой проверки вашего кода без каких-либо других артефактов setuptools/dist и посмотрите, воспроизводит ли это проблему. Если это не так, то вы знаете, что это один из артефактов setuptools/dist, который просто нужно очистить.

person Ross Patterson    schedule 20.08.2011