使用python 3.6在Ubuntu中导入“枚举”时出错

时间:2019-06-08 15:23:28

标签: python ubuntu enums kinect-v2

我正在尝试导入“枚举”,但是出现导入错误,提示它找不到它。 但是就在那里。

(cvnano) joev2@joev2-desktop:~/pylibfreenect2$ sudo python 
selective_streams.py
Traceback (most recent call last):
File "selective_streams.py", line 8, in 
<module>
    from pylibfreenect2 import Freenect2, 
SyncMultiFrameListener
  File 
"/home/joev2/pylibfreenect2/pylibfreenect2/__i n it__.py", line 15, in 
<module>
   import enum
ImportError: No module named enum

但是当我这样做时,它在那里显示了

(cvnano) joev2@joev2-desktop:~/pylibfreenect2$ python
Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from enum import IntEnum
>>> 

有什么想法吗? 如果有帮助,我正在.virtual环境中工作。

1 个答案:

答案 0 :(得分:0)

根据virtualenv docs

  

”如果您直接运行脚本或    virtualenv的bin /目录中的python解释器    (例如path / to / ENV / bin / pip或/path/to/ENV/bin/python-script.py),然后是sys.path    会自动设置为使用与    virtualenv”

因此,如果您运行,请为您的virtualenv的python可执行文件设置一个显式路径:

sudo /path/to/ENV/bin/python selective_streams.py

然后,您将使用sudo特权运行virtualenv的Python。

但是有一个caveat

  

...与激活脚本不同,环境变量PATH和     VIRTUAL_ENV将不会被修改。这意味着如果您的Python脚本使用     例如子进程来运行另一个Python脚本(例如,通过#!/ usr / bin / env python     shebang行)第二个脚本可能无法使用相同的Python执行     作为第一个二进制文件,也没有可用的相同库。为了避免这种情况     发生您的第一个脚本将需要修改环境变量     与激活脚本相同,在第二个脚本之前     被执行。