在虚拟环境中安装站点包 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
才能正常工作。
我正在使用 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
才能正常工作。