Python 如何在/var/www/html/project\u name文件夹中的virtualenv中安装带有pip的Django?
我将Ubuntu 15.04与Python2.7、PIP1.5.6和virtualenv 1.11.6一起使用 我将在Python 如何在/var/www/html/project\u name文件夹中的virtualenv中安装带有pip的Django?,python,django,ubuntu,pip,virtualenv,Python,Django,Ubuntu,Pip,Virtualenv,我将Ubuntu 15.04与Python2.7、PIP1.5.6和virtualenv 1.11.6一起使用 我将在/var/www/html/project_name中创建一个Django项目(并在该目录中工作),以便与Apache2一起使用 为了同步,我在project_name文件夹中创建了一个名为venv的虚拟环境 激活虚拟环境后,我无法运行pip install django,因为我收到“权限被拒绝”消息。因此,我尝试使用命令sudopipsinstalldjango,但这将在全局范
/var/www/html/project_name
中创建一个Django项目(并在该目录中工作),以便与Apache2一起使用
为了同步,我在project_name文件夹中创建了一个名为venv的虚拟环境
激活虚拟环境后,我无法运行pip install django
,因为我收到“权限被拒绝”消息。因此,我尝试使用命令sudopipsinstalldjango
,但这将在全局范围内安装django
所以,运行哪个pip
,我得到/var/www/html/project\u name/venv/bin/pip
但是运行sudo哪个pip
,我得到/usr/bin/pip
有人知道如何在虚拟环境中安装Django(或任何其他软件包)吗
PS:我知道可以运行
sudo-venv/bin/pip-install-django
,但它似乎不是很有用。您的问题大概是您没有这个/var/www/html/project\u-name
目录的写入权限。你的选择是:
/var/www/scripts
之类的内容下,但不要将其放在文档根目录下
另一种部署方式是使用gunicorn之类的东西作为“主”Web服务器,然后让任何世界可见的Web服务器(如apache)反向代理gunicorn。我已经用nginx完成了这项工作,而且设置起来相当容易,唯一的缺点是,您必须在系统的初始化脚本中设置一些额外的内容来启动gunicorn。为什么不给自己/var/www/html/project\u name/venv/的写权限呢?并使用
pip install django运行它
您不应该将django或您的项目放入/var/www.@DanielRoseman为什么不呢?我的虚拟人和项目总是住在那里谢谢你,@vasilyalexev!我将尝试您的建议。虽然这是可行的,但您可能需要考虑创建一个服务用户来部署您的项目。虽然这是一个更大的话题,但值得研究。我在我的主目录中开发我的Django项目(virtualenvs和all)。当我部署时,我有一个进程要部署到/var/www/html/project_name,该进程与git生产分支的Apache用户同名,对需求文件进行pip安装,收集静态文件,等等。不要将整个Django项目放在/var/www/html下-这是世界可读的,可能会导致设置文件之类的事情(带密钥)变得可读。
$ sudo su
# . venv/bin/activate
# pip install