python - ./setup.py install 的 --install-base 参数到底是什么意思?

标签 python distutils

我尝试使用自定义安装布局安装 python 模块。

根据我收集到的文档,我可以做

python ./setup.py install -f --install-base="/home/hstock/tmp/python" \
                        --install-purelib=modules \
                        --install-scripts=bin \
                        --install-data=data \
                        --install-platlib=modules \
                        --install-headers=include

这应该将模块安装到 /home/hstock/tmp/python/modules - 然而似乎 install-base 被忽略并且模块安装到 ./modules.

这是错误还是我弄错了文档?

(这是 Ubuntu Lucid 上的 python 2.6.5)

更新:

我要安装的模块是自制的,setup.py很简单:

#!/usr/bin/env python

from distutils.core import setup

setup(
    name='ilogtoolbox',
    provides=['ilogtoolbox'],
    version='0.6.3.1',
    packages=['ilogtoolbox'],
    requires=['daemon'],
    scripts=['prunedirs', 'logstoexternal']
    )

最佳答案

实际上所有这些 --install-* 参数都接受简单的字符串模板。看看 python 的标准库 distutils.command.install code .您会看到默认值类似于“$base/Lib”或“$base/Scripts”。

因此对于您的用例,它将如下所示:

python ./setup.py install -f --install-base="/home/hstock/tmp/python" \
                        --install-purelib='$base/modules' \
                        --install-scripts='$base/bin' \
                        --install-data='$base/data' \
                        --install-platlib='$base/modules' \
                        --install-headers='$base/include'

而且由于 --install-lib 实际上同时设置了 purelib 和 platlib,所以它可以缩短一点:

python ./setup.py install -f --install-base="/home/hstock/tmp/python" \
                        --install-lib='$base/modules' \
                        --install-scripts='$base/bin' \
                        --install-data='$base/data' \
                        --install-headers='$base/include'

关于python - ./setup.py install 的 --install-base 参数到底是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5351086/

相关文章:

python - Django:如何在其自身内部调用相同的模型类?

python - 解决 I/O 限制问题的最佳方法?

python - 如何指定要使用 python distutils 编译的库

python - 导入错误 : cannot import name (unknown location)

python - Tensorflow 启动速度快,训练过程中速度减慢

python -/iris/is 中的未捕获异常(也是 [Errno 101] 网络无法访问)

python - 如何使用 Python 在 Airflow 中的另一个 DAG 成功时触发 DAG?

python - Conda 环境中的 LD_LIBRARY_PATH

python - Distutils 编译器选项配置

python - 在 Python 中以编程方式确定 distutils 数据文件的位置