如何在没有root的情况下运行easy_install和pip,没有virtualenv?

人们可以像普通用户那样访问服务器(实际上被监禁),并且目前他们build议下载他们需要的任何python包, setup.py build它们,然后将它们的位置添加到sys.path

如果没有virutalenv,有没有办法使easy_install和pip安装软件包到一个目录(在$PYTHONPATH~

或者,你可以设置一个virtualenv对于一个给定的用户来说总是处于活动状态,无论是在shell中,还是repo到Apache和mod_wsgi?

总之,如何最好地解决安装网站包的权限问题?

为了在shell中自动获得virtualenv,每次用户login时都应该获取bin/activate脚本。您可以在创build用户时创build默认virtualenv环境。 或者,你可以直接在用户的.bash_login.zshrc或其他任何地方将virtualenv的python解释器的path添加到$PATHvariables中。

Virtualenv在激活时会修改两个环境variables。 首先,它会将{virtualenv}/bin添加到您的$PATH ,其次,它会定义$VIRTUAL_ENVvariables,告诉您在哪里设置了virtualenv。 所以你可以尝试通过设置这些variables来模仿Apache的行为。 最后你应该使用virtualenv下载的virtualenv的python解释器,它具有所有必要的path设置。

在它的手中mod_wsgi有一些configuration选项可以帮助你做到这一点。 使用WSGIPythonPath应该足够了。 你也可以考虑使用WSGIPythonEggs

但是请注意,您应该保护初始设置不被用户修改,但可以通过运行apache的用户访问。