Python 如何在/var/www/html/project\u name文件夹中的virtualenv中安装带有pip的Django?

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,但这将在全局范

我将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
,但这将在全局范围内安装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
目录的写入权限。你的选择是:

  • 以递归方式更改权限,以便您确实具有写入该目录的权限

  • 运行以下命令:

  • 再加上大家一直在说的话,我略读了一下:永远不要把敏感的东西(包括你的django项目)放在文档根下。您可以将其存储在类似
    /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