我尝试使用自定义安装布局安装 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/