由于目录权限,无法安装 python egg

Can't install python egg due to directory permissions

我仍在熟悉 python 和 python 鸡蛋,如果这是一个愚蠢的问题,我深表歉意。我想知道为什么 easy_install 似乎安装了 egg 供整个服务器使用,而不是只在本地供尝试安装它的帐户使用。

我创建了一个简单的 helloworld module/egg 并尝试将它安装在我有帐户的服务器上。但是,该帐户没有根访问权限(它是测试人员的帐户)。安装时收到 "Permission denied" 错误消息。安装模块时,它正在尝试安装到 /usr/local/lib/python2.7/site_packages/blah/blah/blah。很明显它是 b/c 我没有 root 权限来写入这个位置。

easy_install hello-1.0-py2.7.egg

在我的笔记本电脑上(我的帐户有 root 访问权限),我可以 运行 上面的 cmd 并看到模块是由 运行ning 'pip freeze' 安装的。细微的差别是 Anaconda 在我的笔记本电脑上 running/installed 并且似乎在为我进行包管理。

回到我原来的问题; easy_install 如何安装我们自己创建的鸡蛋?我是 hoping/assuming 它会在我的测试人员的帐户中安装模块,而不是 /usr/local/lib/blha/blah/blah 所有用户 use/access。这是一个错误的假设吗?如果这是不正确的想法,那么有人会如何在帐户没有 root 访问权限的情况下安装 module/egg?谢谢

根据 easy_install or pip as a limited user?,您需要使用 --prefix 选项来 easy_install and/or -d-s

我相信你可以做一些简单的事情:

easy_install --prefix=$HOME hello-1.0-py2.7.egg

一个选项是使用 virtualenv,它允许您为 Python 创建多个虚拟环境,每个环境都有自己的一组库。

只需创建一个 virtualenv,然后您就可以在其中安装您的模块,而无需对系统进行写入访问 Python 安装。

这里有一个教程:http://simononsoftware.com/virtualenv-tutorial/,但只需安装 virtualenv 然后:

$ cd $HOME
$ virtualenv test
$ cd test
$ source bin/activate
$ easy_install /path/to/hello-1.0-py2.7.egg

包应该安装到 ~/test/lib/python2.7/site-packages