как сказать Python disutils.core для установки функции под другим рутом? - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть этот скрипт на 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

Естественно - я не хочу и не имею разрешения писать в *Каталог 1007 *.Вместо этого я хочу установить в другой каталог, в котором у меня есть структура каталогов linux.Скажем, я хочу установить на /home/mark/usr/lib64/python2.7/site-packages.

Я изучил distutils.core документацию и использовал --help, но не смог найти никакой опции для установки под другим рутом.

Как это сделать?

1 Ответ

0 голосов
/ 21 декабря 2018

./setup.py install устанавливает пакет в глобальный site-packages/ в вашей установке python, делая его доступным для всех пользователей системы.

./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/.

...