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

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

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

如果没有 virutalenv,是否有办法让 easy_install 和 pip 将包安装到$PYTHONPATH内部的目录中~

或者,您是否可以设置一个始终对给定用户处于活动状态的虚拟环境,无论是在 shell 中还是与 Apache 和 mod_wsgi 相关?

简而言之,如何最好地解决安装站点包时的权限问题?

答案1

要使虚拟环境在 shell 中自动可用,您应该在bin/activate每次用户登录时都获取其脚本。您可以在创建用户时创建默认虚拟环境的同时执行此操作。或者,您只需将虚拟环境的 Python 解释器的路径添加到$PATH用户中的变量中.bash_login.zshrc或者其他任何位置。

Virtualenv 在激活时会修改两个环境变量。首先,它会将文件添加{virtualenv}/bin到您的$PATH,其次,它会定义$VIRTUAL_ENV变量来告诉您 virtualenv 的确切设置位置。因此,您可以通过设置这些变量来尝试在 Apache 中模仿它的行为。最后,您应该使用随 virtualenv 下载的 virtualenv 的 python 解释器,该解释器已设置所有必要的路径。

mod_wsgi它有一些配置选项可以帮助你实现这一点。使用WSGIPythonPath。您可以考虑使用WSGIPythonEggs也一样。

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

相关内容