人们可以像普通用户那样访问服务器(实际上被监禁),并且目前他们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的用户访问。