在虚拟环境中安装站点包 python

Install site-packages inside virtual environment python

我正在使用 uwsgi 和 nginx 在预安装 python 软件包的 RHEL 上部署我的 django 应用程序。服务器全局安装了 uwsgi 和 nginx(作为 root)。我的服务器没有连接到互联网。

我已将我的 django 项目安全地复制到此服务器中。为了获得最佳实践,我被告知使用虚拟环境,当我执行命令时,

virtualenv -p /usr/local/lib/python3.5/bin/python3.5 venv

一切都很酷。它创建了一个 python 3.5.

的虚拟环境

但问题是,我需要将这些预先安装在服务器上的站点包放到这个虚拟环境中。示例 django、redis 等。当我使用 --system-site-packages 执行上述命令时,它会抛出此错误

PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.6/site-packages/wheel-0.29.0.dist-info'

是否有更简洁的方法来执行此操作或者哪里出错了`?

这可能是因为您的 machine.Just 中存在另一个用户,请检查您是否具有系统权限,如果没有,请编辑文件的属性并授予它权限。

你可以试试:

$ pip freeze

其中 pip 是系统范围的 pip。如果它输出任何东西,那么就这样做:

$ pip freeze > requirements.txt;
$ source /path/to/venv/bin/activate && pip install -r requirements.txt;

通过这种方式,您将告诉虚拟环境的 pip 安装系统范围内安装的所有 python 包。

如果pip freeze不起作用,这是一个权限问题,您必须as/with管理员详细说明。

UPD:您可能需要安装其他软件包,如 python3-dev、build-essential 等,pip install -r requirements.txt 才能正常工作。