#python #linux #setuptools #pywin32
#python #linux #setuptools #pywin32
Вопрос:
Я сталкиваюсь со странной проблемой, когда я пытаюсь установить свой пакет python (используя setuptools) в системе Linux, и он пытается установить pywin32 в качестве зависимости. Это только произойдет, если я запущу его из определенного каталога. Если я перемещу все дерево в другой каталог, оно установится нормально.
Мой setup.py ссылается на pywin32 для платформ win32, но даже когда я удаляю это, это не имеет значения. Я также удалил все остальные требования без каких-либо изменений в поведении. Мой setup.py в нем нет ничего, кроме инициализации setuptools и вызова setup().
У меня активен virtualenv, и я попытался переключиться на новый чистый virtualenv без изменения поведения. При запуске я вижу следующее 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 egg этого пакета, но это было в исходной виртуальной среде, и я не могу понять, что это могло вызвать.
Как мне это отладить? Откуда еще setuptools может искать зависимости?
ОБНОВЛЕНИЕ: похоже, что важно не имя каталога, а то, где он находится. Если я переместу каталог пакета на один уровень выше, он установится нормально. Каталог, о котором здесь идет речь, был удален и воссоздавался несколько раз, поэтому, похоже, он не связан ни с чем внутри каталога.
Ответ №1:
Попробуйте удалить *.egg-info из каталога dist develop. Если это не сработает, попробуйте начать с новой, нетронутой проверки вашего кода без каких-либо других артефактов setuptools / dist и посмотреть, воспроизводит ли это проблему. Если этого не происходит, то вы знаете, что это один из артефактов setuptools / dist, который просто необходимо очистить.