如何告诉Python disutils.core安装函数在不同的根目录下安装?

时间:2018-12-21 02:00:17

标签: python distutils

我有这个Python脚本:

#!/usr/bin/env python
from distutils.core import setup, Extension
MOD = 'sysinfo'
setup(
    name=MOD, 
    ext_modules=[
        Extension(
            MOD, 
            sources=['python_module.c']
        )
    ]
)

运行它,我得到:

$./setup.py install
running install
running build
running build_ext
running install_lib
copying build/lib.linux-x86_64-2.7/sysinfo.so -> /usr/lib64/python2.7/site-packages
error: /usr/lib64/python2.7/site-packages/sysinfo.so: Permission denied

自然地-我不需要并且没有权限来写入/usr目录。我想改为安装到另一个目录,在该目录下我有一个linux目录结构。说,我想安装到/home/mark/usr/lib64/python2.7/site-packages

我研究了distutils.core文档,并使用了--help,但找不到在其他根目录下安装的任何选项。

如何做到?

1 个答案:

答案 0 :(得分:1)

./setup.py install将软件包安装到python安装的全局site-packages/中,使其可用于系统的所有用户。

./setup.py install --user将软件包安装到家中的本地site-packages/~/.local/lib/pythonX.Y/site-packages/)中,仅对您可用。

./setup.py install --root ~/custom/directory/

安装到~/custom/directory/usr/lib64/pythonX.Y/site-packages/中。