【发布时间】:2011-12-06 09:11:14
【问题描述】:
在 Ubuntu/Debian 上,我在从源代码安装软件包时使用 checkinstall 软件包
sudo checkinstall make install
或
sudo checkinstall python setup.py install
我的问题是使用setuptools(修改easy-install.pth文件)的Python包无法正确安装,因为checkinstall要求为每个使用它的新Python包覆盖easy-install.pth。
我知道我可以使用pip install <package>,但如果我没有更好的知识,至少使用checkinstall 处理,Debian 打包系统协调的依赖项不会“看到”这个包。
我希望我的术语是正确的,我想知道这个问题是否可以以某种方式解决,问自己:
- 可以
checkinstall以某种方式与使用setuptools的Python 包一起工作吗?,或者 - 是否可以以不同方式安装使用
setuptools的 Python 包(例如通过切换到python setup.py install命令或类似命令避免写入easy-install.pth?
【问题讨论】:
-
系统包 (
apt-get),稳定且普遍有用 (pip install --user),不稳定且特定于项目 (virtualenv)。 -
是的,但从逻辑上讲,Synaptic 有旧版本。如果我使用我的 ATLAS 构建构建 SciPy 0.10b2,我希望依赖 SciPy 的软件包使用我的构建,而不是要求我安装
python-scipy 0.8。虽然 SciPy 对setuptools没有这个问题,但我以它为例 -
scipy 是两步问题: 1. 安装 BLAS 和 LAPACK(通过任何你喜欢的方式)如果可能的话,我会选择
apt-getroot 2. 使用pip install --user或 virtualenv 安装scipy。 Python 的好处是你不需要 ldconfig 它的 C 扩展;如果它们在sys.path中,导入机制会找到它们。因此,apt-get(或任何其他方式)安装的 python 模块将自动使用您的 scipy 安装。 -
好的,谢谢您的意见。正如我在回复中两次提到的那样,我对 SciPy 没有任何问题。您的建议并没有解决任何问题,所以如果您有答案,请发布,否则我们可以谈论整个晚上。
-
要解决这个问题,请使用
apt-get、pip install --user、virtualenv,正如我所说的,即不要使用checkinstall。我不会将其作为答案发布,因为可能有一些神奇的方式可以将checkinstall和setuptools一起使用,例如sudo checkinstall pip install your_tarball.tar.gz。 pip 可能会向setuptools提供这样的选项,它不会写入easy-install.pth。不客气。
标签: python linux packaging setuptools