Python 3 看不到 root 在不同用户下安装的包

Python 3 看不到 root 在不同用户下安装的包

psycopg2以 root 身份在 CentOS 7.3 上安装了 Python 3。当我suroot的时候

> python3 -m  pip show psycopg2
Name: psycopg2
Version: 2.6.2
Summary: psycopg2 - Python-PostgreSQL Database Adapter
Home-page: http://initd.org/psycopg/
Author: Federico Di Gregorio
Author-email: [email protected]
License: LGPL with exceptions or ZPL
Location: /opt/rh/rh-python34/root/usr/lib64/python3.4/site-packages
Requires:

请注意,pip将其安装在指示的目录中( /opt/rh/rh-python34/root/usr/lib64/python3.4/site-packages)。

但是,当我切换到不同的用户时,python 看不到这个包——python3 -m pip show psycopg2不返回任何内容。如果我尝试运行导入它的 py 脚本,则会收到错误。我确实确认我可以以非 root 用户身份进入该目录并读取文件。

如何制作由 root 安装的 python 包对所有其他用户可见?

答案1

首先,删除psycopg2包(sudo pip uninstall psycopg2),然后:

1:

从存储库安装python-psycopg2 包:

$ sudo yum install python-psycopg2 

或者

2:

更改umask022并安装psycopg2

$ umask 022
$ sudo pip install psycopg2

答案2

这是一个 python 路径问题。我通过引入一个PYTHONPATH设置为的系统变量来解决它/opt/rh/rh-python34/root/usr/lib64/python3.4/site-packages

 export PYTHONPATH=/opt/rh/rh-python34/root/usr/lib64/python3.4/site-packages

相关内容