我正在部署Django网站,我使用virtualenv来保持我的Python安装整洁。我试图找出虚拟环境在生产服务器环境中的位置。看起来这应该是超级简单的,但它给了我一个怪物头痛。任何帮助将不胜感激!
我的计划是使用virtualenvwrapper来创建我的虚拟环境。默认情况下,这会将virtualenv存储在~/.virtualenvs
中,在本例中为/home/james/virtualenvs/
。当我在我的本地计算机上运行用户james
下的所有内容时,这在开发中很好。但是,我不相信用户james
将在生产服务器上的virtualenv中运行代码;相反,我相信它会成为www-data
。 www-data
是否应该到达james
以访问virtualenv,或者有没有办法将virtualenv安装到www-data
?似乎应该有一种在生产中配置virtualenvs的标准化方法,但我似乎无法找到任何东西。
提前感谢您提供任何帮助!
答案 0 :(得分:4)
基本上,您可以将虚拟环境放在任何适合您的地方,并且可以由运行python进程的用户读取。出于安全原因,您应该考虑将ve创建为其他用户,以便该进程无权写入。
答案 1 :(得分:0)
我总是这样构建:
virtualenvs:
/user/var/www/project/virtualenvs/myapp_env1
/user/var/www/project/virtualenvs/myapp_env2
/user/var/www/project/virtualenvs/myapp_env3
....
应用:
/user/var/www/project/applications/myapp1
/user/var/www/project/applications/myapp2
/user/var/www/project/applications/myapp3
...
我实际上知道这些东西不应该在/ var / www /下面,但是我从来没有注意过它..
每个应用都有自己的用户,以appname命名。
答案 2 :(得分:0)
我以与你相同的方式设置我的virtualenv。
你应该做的是将james
添加到群组www-data
,它应该没问题。
sudo adduser james www-data