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

如何告诉Python disutils.core安装函数在不同的根目录下安装?,python,distutils,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'] ) ] ) 当我运行它时,我得到: $./set

我有一个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包中

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


如何执行此操作?

/setup.py install
在python安装中将该软件包安装到全局
站点软件包中/
,使其可供系统的所有用户使用

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

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

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

是否应该为此安装virtualenv?或者这不是你想要的for@ycx我不这么认为。我没有安装virtualenv的root权限,也不想安装其他Python发行版。我只是不喜欢默认情况下将
安装
功能安装到系统目录,我不知道如何将其更改为安装到我自己的自定义目录。谢谢!但是有没有办法安装到任何自定义目录中:
~/custom/directory/usr/lib64/pythonX.Y/site packages/
/setup.py install--root~/custom/directory/
/setup.py install--prefix~/custom/directory/usr/lib64/
。但是,您必须在
PATH
中包含
~/custom/directory/usr/lib64/bin/
,在
PYTHONPATH
中包含
~/custom/directory/usr/lib64/
,这意味着您要模拟
virtualenv
。在我看来,最好是
pip安装--user virtualenv
并使用
virtualenv
。谢谢-
--root
成功了!但我不明白,为什么这个选项没有记录在任何地方??我试图搜索distutils.core的Py代码,但这花费了太多时间,我仍然没有找到类似
--root
选项的东西。请回答,我会接受的。不,我不需要在PATH env变量中包含任何内容-我不需要使用python安装-我只需要在那里安装,就像我在问题中所说的那样。也许distutils.core设置不适合我的情况,但是其他人使用了它,我不想对代码做太多更改。你说这个选项没有任何文档记录是什么意思?当然是这样。运行
python setup.py install--help | grep root
。好的,这是我作为一名程序员所做的事情,我做过很多py编程,但我想我不是大师。我运行
python setup.py
,它失败了,我查看了
setup.py
的代码内部,我看到了
distutils.core setup
函数的用法,它失败了,我查看了文档,没有提到任何
root
选项。用
--help
运行整个脚本我从来没有想过,因为显然,代码中没有任何东西(对非大师)表明任何这样的选项都是可用的。