【发布时间】:2011-09-12 14:19:11
【问题描述】:
我遇到了一个奇怪的问题,我尝试在 Linux 系统上安装我的 python 包(使用 setuptools),它尝试安装 pywin32 作为依赖项。如果我从特定目录运行它,仅会发生这种情况。如果我将整个树移动到不同的目录,它安装得很好。
我的 setup.py 确实为 win32 平台引用了 pywin32,但即使我删除它也没有什么区别。我还删除了所有其他要求,而行为没有任何改变。我的 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 还能从哪里搜索依赖项?
更新:看起来重要的不是目录的名称,而是它的位置。如果我将包目录上移一级,它会安装得很好。此处有问题的目录已被多次删除并重新创建,因此它似乎与目录中的任何内容都没有关系。
【问题讨论】:
标签: python linux setuptools pywin32