如何在 /var/www/html/project_name 文件夹中的 virtualenv 中使用 pip 安装 Django?

How to install Django with pip inside a virtualenv in /var/www/html/project_name folder?

我正在使用 Ubuntu 15.04 和 Python 2.7、pip 1.5.6 和 virtualenv 1.11.6。

我将在 /var/www/html/project_name 中创建一个 Django 项目(并在该目录中工作)以用于 Apache2。

我在 project_name 文件夹中创建了一个名为 venv 的虚拟环境用于同步目的。

激活虚拟环境后,我无法 运行 pip install django 因为我收到 'Permission denied' 消息。所以我尝试了命令 sudo pip install django,但这会全局安装 Django。

所以,运行宁which pip,我得到/var/www/html/project_name/venv/bin/pip

但是运行宁sudo which pip,我得到/usr/bin/pip

有人知道如何在虚拟环境中安装 Django(或任何其他包)吗?

PS:我知道可以运行sudo venv/bin/pip install django,但是好像用处不大。

您的问题可能是您没有对此 /var/www/html/project_name 目录的写入权限。您的选择是:

  1. 以递归方式更改权限,以便您有权写入该目录。

  2. 运行以下命令:

.

$ sudo su
# . venv/bin/activate
# pip install

只是为了补充大家一直在说的话,我略略浏览了一下:永远不要把敏感的东西(包括你的 django 项目)放在文档根目录下。您可以将其存储在 /var/www/scripts 之类的目录下,但不要将其放在文档根目录下。

另一种部署方式是使用像 gunicorn 这样的东西作为 "main" 网络服务器,然后让任何世界可见的网络服务器(如 apache)反向代理到 gunicorn。我已经用 nginx 做到了这一点,它的设置相当容易,唯一的缺点是你必须在系统的初始化脚本中设置一些额外的东西来启动 gunicorn。