【问题标题】:How to use "checkinstall" with Python packages that use "setuptools"如何将“checkinstall”与使用“setuptools”的 Python 包一起使用
【发布时间】: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-get root 2. 使用 pip install --user 或 virtualenv 安装scipy。 Python 的好处是你不需要 ldconfig 它的 C 扩展;如果它们在sys.path 中,导入机制会找到它们。因此,apt-get(或任何其他方式)安装的 python 模块将自动使用您的 scipy 安装。
  • 好的,谢谢您的意见。正如我在回复中两次提到的那样,我对 SciPy 没有任何问题。您的建议并没有解决任何问题,所以如果您有答案,请发布,否则我们可以谈论整个晚上。
  • 要解决这个问题,请使用apt-getpip install --uservirtualenv,正如我所说的,即不要使用checkinstall。我不会将其作为答案发布,因为可能有一些神奇的方式可以将checkinstallsetuptools 一起使用,例如sudo checkinstall pip install your_tarball.tar.gz。 pip 可能会向setuptools 提供这样的选项,它不会写入easy-install.pth。不客气。

标签: python linux packaging setuptools


【解决方案1】:

你可以用这个:

checkinstall --exclude /usr/local/lib/python2.7/dist-packages/easy-install.pth

【讨论】:

    猜你喜欢
    • 2014-04-07
    • 2011-11-25
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多