我正在使用预装的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'
是否有更简洁的方法可以做到这一点或哪里出错??
答案 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
正常工作。