如何在使用“setuptools”的Python包中使用“checkinstall”

6
在Ubuntu/Debian上,我使用checkinstall软件包从源代码安装软件包。例如:sudo checkinstall make installsudo checkinstall python setup.py install
我的问题是,使用setuptools的Python软件包(会修改easy-install.pth文件)无法正确安装,因为每个新的使用它的Python软件包都会被checkinstall要求覆盖easy-install.pth文件。
我知道我可以使用pip install <package>命令来安装软件包,但如果没有至少使用checkinstall进行处理,由Debian打包系统协调的依赖项将无法“看到”此软件包。
我希望我的术语是正确的,并想知道是否可以解决这个问题,即:
  • checkinstall是否可以与使用setuptools的Python软件包一起工作?或者
  • 是否可以以不同的方式安装使用setuptools的Python软件包(例如通过某些开关避免写入easy-install.pth文件)?

系统软件包(apt-get),稳定且通用的(pip install --user),不稳定且特定于项目(virtualenv)。 - jfs
是的,但从逻辑上讲,Synaptic有旧版本。如果我使用我的ATLAS构建构建SciPy 0.10b2,我希望依赖于SciPy的软件包使用我的构建而不是要求我安装“python-scipy 0.8”。虽然SciPy在“setuptools”中没有这个问题,但我以它作为例子。 - theta
scipy 是一个两步问题:1. 安装 BLAS 和 LAPACK(使用任何你喜欢的方式),如果可能的话,我会选择 apt-get root。2. 使用 pip install --user 或 virtualenv 安装 scipy。Python 的好处是你不需要 ldconfig 它的 C 扩展;如果它们在 sys.path 中,导入机制会自动找到它们。因此,通过 apt-get(或任何其他方式)安装的 python 模块将自动使用你的 scipy 安装。 - jfs
好的,谢谢你的意见。我在回复中已经两次提到了SciPy,所以我并没有问题。你的建议并没有任何解决问题的方式,所以如果你有任何答案,请发帖讨论,否则我们可以整夜谈论这个问题。 - theta
1
为了解决这个问题,请使用apt-getpip install --uservirtualenv,不要使用checkinstall。我没有将其发布为答案,因为可能有一些神奇的方法可以同时使用checkinstallsetuptools,例如sudo checkinstall pip install your_tarball.tar.gz。pip可能会向setuptools提供这样的选项,以便它不会写入easy-install.pth。欢迎您的使用。 - jfs
很不幸,在发布之前我已经尝试过了。 - theta
1个回答

2
你可以使用这个:
checkinstall --exclude /usr/local/lib/python2.7/dist-packages/easy-install.pth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接