什么是python中的sitepackage?如果不是root用户,您可以安装/使用它们吗?

2024-04-28 13:52:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图将Linux中的lldb安装到系统上的主目录(我没有根访问权限),并且遇到了一个问题,该步骤试图在/usr/lib/python2.6/site-packages中创建子目录

我在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)

因此,这不是我可以在configure sciprt中指定的内容,但是我可以更改Makefile以使文件复制到主目录中的某个位置。但我真的不明白site-packages是什么,也不知道如何指定python应该在这些文件的其他位置查找这些文件。这是可能的,还是我想做的有什么解决办法?


Tags: 文件import权限linuxlibpackages系统sys
3条回答

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

这是一条很长的路。

除了python将要查找的已知目录外,站点包实际上没有什么意义。尝试导入时,可以将PYTHONPATH环境变量更改为包含其他目录。我不知道您是如何安装的,但是很多时候,构建过程允许您指定一个--prefix来告诉构建和安装过程实际输出文件的位置。我对你的案子了解不够,不知道是否适用。

下面是简单的代码

sudo apt get安装pip

如前所述回答问题:

站点包是安装第三方包的位置(即,不是核心python发行版的一部分)。在Linux上,必须是根用户才能对其进行写操作。

要解决您的问题:

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

相关问题 更多 >