如何在 python 中导入使用绝对导入的包

How to import a package that use absolute import in python

我正在尝试将 volatility3 导入我的 python project/script,这样我就不必使用 os.system,因为 volatility3 已经在 python3.

我想知道如何导入所述项目的所有 functions/modules?我感兴趣的功能位于 volatility3/volatility/framework 我试着简单地把:

>>> import volatility3.volatility.framework

但我收到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/volatility3/volatility/framework/__init__.py", line 12, in <module>
    from volatility.framework import constants, interfaces
ModuleNotFoundError: No module named 'volatility'

我的猜测是我必须修改 sys.path 或 path 变量之一,但这似乎不起作用。

谢谢,

此处最好的解决方案是使用 pip3 从您已经存在的存储库文件夹中正确安装 volatility:

$ pip3 install /home/volatility3

或直接来自 pipy(未测试):

$ pip3 install volatility3

那么您应该可以直接导入来自 volatility 的包:

Python 3.6.9 (default, Nov  7 2019, 10:44:02) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import volatility.framework
>>> volatility.framework
<module 'volatility.framework' from '/home/bruno/.local/lib/python3.6/site-packages/volatility/framework/__init__.py'>
>>>