【问题标题】:Install Python extension to specific location将 Python 扩展安装到特定位置
【发布时间】:2011-06-15 18:24:42
【问题描述】:

我的项目混合了纯 Python 代码和用于优化和与 C 库链接的 Cython 扩展。我的 Python 项目有一个源代码树,还有一个用于 Cython 和 C 代码的源代码树。我的 Cython 扩展每个都有一个 setup.py 文件来构建它们。实际上,对于每个扩展,我都会执行以下操作:

python setup.py build_ext --inplace
mv myext.so ../some/specific/place/

有没有办法指定 distutils 安装我的扩展的位置(如果可能,使用相对路径),而不是使用 --inplace 后跟 mv?使用 --prefix 选项不好,因为它会创建我不需要的文件夹层次结构。

【问题讨论】:

  • 可以把你setup.py的内容放上去吗?

标签: python distutils


【解决方案1】:

我终于找到答案了!选项是 -b(或 --build_lib)

python setup.py build_ext -b ../some/specific/place/

【讨论】:

  • 谢谢 - 请注意它是 --build-lib 而不是 --build_lib
【解决方案2】:

也许您可以使用 distutils 的 alternate installation 功能,它可以让您删除无用的层次结构文件夹。

试试这样的:

python setup.py install --home=../some/specific/place \
                        --install-purelib=. \
                        --install-platlib=.

【讨论】:

  • 这样做在当前目录中安装我的扩展,就像 --inplace 一样。
猜你喜欢
  • 2017-05-22
  • 1970-01-01
  • 2013-06-17
  • 1970-01-01
  • 2021-06-19
  • 2017-07-26
  • 1970-01-01
  • 1970-01-01
  • 2020-03-05
相关资源
最近更新 更多