我psycopg2
以 root 身份在 CentOS 7.3 上安装了 Python 3。当我su
root的时候
> 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:
更改umask
为022
并安装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