在虚拟环境python中安装site-packages

时间:2017-02-28 17:08:08

标签: python django nginx virtualenv

我正在使用预装的python包在RHEL上使用uwsgi和nginx部署我的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]权限被拒绝:   '/usr/local/lib/python3.6/site-packages/wheel-0.29.0.dist-info'

是否有更简洁的方法可以做到这一点或哪里出错??

2 个答案:

答案 0 :(得分:0)

由于您的计算机中存在另一个用户,可能会发生这种情况。请检查您是否具有系统权限,如果不编辑该文件的属性并授予其权限。

答案 1 :(得分:0)

您可以尝试:

$ pip freeze

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

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

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

如果pip freeze不起作用,这是一个特权问题,您必须将其详细说明为/与管理员。

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