问题描述
pip``setup.py
内部使用。它只是将其他选项传递给它。要重现pip
正在执行的操作,请执行
python setup.py install --single-version-externally-managed
您还可以运行pip -vv
以查看确切的命令正在运行。
解决方法
我想通过 setuptools找出 Python命名空间包背后的神话,这就是我所做的测试。
- 通过创建 虚拟环境
virtualenv
。 - 在 PyPI 上找到一个命名空间的包。
- 通过安装该软件包
pip install
。 - 检查已安装的文件层次结构。
我使用的软件包是zope.interface,它与我的virtualenv上的以下文件层次结构配合良好:
~virenv/.../site-packages/zope.interface-3.8.0-py2.6-nspkg.pth
/zope.interface-3.8.0-py2.6.egg-info/
/zope/
/interface/
/...
一切看起来都很好,我喜欢 zope.interface 作为真正的命名空间软件包(在 zope 文件夹下)安装的方式。
然后,我进行了另一项测试,这就是我想寻求您的帮助的问题。我下载了 去皮的zope.interface 源文件。我喜欢再次手动播放
- 通过创建 虚拟环境
virtualenv
。 - 将 zope.interface 解压缩到某个位置。
- 通过安装软件包
python setup.py install
。 - 去检查 site-packages中 发生了什么。
该 站点包 如下所示:
~virenv/../site-packages/zope.interface-...egg/
/zope/
/__init__.py
/interface/
/EGG-INFO/
问:为什么我不能pip install
手动获得准确的结果python setup.py install
?