python中的site-packages是什么,如果你不是root用户,你可以安装/使用它们吗?

时间:2012-04-24 04:55:31

标签: python

我正在尝试将Linux中的lldb安装到我系统上的主目录中(我没有root访问权限),并且我遇到了一个问题,即尝试在{{创建子目录的步骤1}}

我在Makefile中找到了设置此变量的行,它是:

/usr/lib/python2.6/site-packages

所以我不能在configure sciprt中指定它,但是我可以更改Makefile以使文件被复制到我的主目录中的某个位置。但我真的不明白PYTHON_DEST_DIR := $(DESTDIR)/$(call realpath,$(shell python -c 'import sys; print sys.exec_prefix')/lib/python$(shell python -c 'import sys; print sys.version[:3]')/site-packages) 是什么,或者我如何指定python应该在这些文件的某个替代位置查找。这是可能的事情还是我想做什么的变通方法?

3 个答案:

答案 0 :(得分:7)

回答上述问题:

site-packages是安装第三方软件包的位置(即,不是核心python发行版的一部分)。在Linux上,你必须是root用户才能写入它。

解决您的问题:

virtualenv是一个python环境管理器,它允许您在主目录中创建自己的python环境。使用virtualenv和virtualenvwrapper(使virtualenv更好用)的超快速入门,请查看burrito

答案 1 :(得分:4)

可能有帮助的解决方案是安装virtualenv。它是一个python包,可以帮助设置一些更烦人的路径重定向问题,并允许您访问使用pip和easy_install直接安装到您的主目录。

这是漫长的路线。

除了python外观的已知目录之外,

site-packages实际上没有多大意义。您尝试导入时可以更改PYTHONPATH环境变量以包含其他目录。我不确定你是如何安装的,但是很多时候构建过程允许你指定一个--prefix来告诉构建和安装过程实际输出文件的位置。我对你的具体情况了解不足以判断是否适用。

答案 2 :(得分:-4)

这是简单的代码

sudo apt-get install pip