Python模块导入 - 为什么它不起作用?

时间:2015-01-30 19:10:55

标签: python python-2.7

我正在尝试在我的系统上安装LLDB-3.5,并且我在加载python2.7绑定模块时非常困难。

该模块具有通常的结构

/ LLDB
      + __init__.py
      + some_file.py
      + _lldb.so
      / subdirectory

我已经验证模块的路径是PYTHONPATH。我已经检查了sys.path的结果,它在那里,我可以直接导入some_file.py

import some_file # This line compiles happily.

奇怪的是,我也可以导入 init .py

import __init__ # This line complains its missing module lldb.some_file

我确实安装了lldb-3.4,但是如果我在该文件中添加了一个print语句,它会显示出来,所以我肯定会看到这个文件。

然而,当我尝试导入lldb时,我回来了

import lldb  # ImportError: No module named lldb

我不明白。

它是LLDB的swig's Python包装器,但我已经验证了.so加载。呼叫" ldd _lldb.so"在命令行上显示已解析的依赖项的良好列表。如果我在python shell中运行 init .py中的命令(即调用imp.find_module& imp.load_module),那么so文件就会很快加载。

我确定这是一个非常基本的问题,但我并没有太多使用Python。我已经安装了使用Python 2.6的virtualenv,但我当然已经在正确的Python版本中验证了我。

1 个答案:

答案 0 :(得分:3)

lldb目录本身是否在路径上?对于包,您应该在sys.path上包含其包含目录(lldb的父目录)。

(通常情况下,我希望软件包安装能够为您完成此操作。但是,this page末尾的注释表明他们正在针对您使用Python {{1}的用例来自lldb命令行程序的模块。所以你必须手动设置路径。)