使用sudo时导入模块失败

时间:2018-12-17 09:37:52

标签: python

我想导入pylibfreenect2,当我处于用户模式时,它可以正常工作。

python3
>>> import pylibfreenect2

但是,它无法导入sudosudo -E -H中的模块

sudo python3 
>>> import pylibfreenect2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/user/.local/lib/python3.5/site-packages/pylibfreenect2/__init__.py", line 108, in <module>
    from .libfreenect2 import *
ImportError: libfreenect2.so.0.2: cannot open shared object file: No such file or directory

由于有时需要使用python2.7,因此无法在~/.bashrc中使用PYTHONPATH。

还有其他解决方法吗?非常感谢,我的操作系统是ubuntu。

2 个答案:

答案 0 :(得分:1)

您可以使用pyenv来管理不同的Python版本并在它们之间切换。

答案 1 :(得分:0)

命令:

sudo -E -H

不保存当前的HOME变量,使用-H时需要指示目标用户(参见https://www.sudo.ws/man/1.8.3/sudo.man.html)。尝试使用:

sudo -E -H -u ${your_user}