[lldb-dev] " Import error: No module named embedded_interpreter" on windows

Zachary Turner via lldb-dev lldb-dev at lists.llvm.org
Wed Oct 7 13:47:42 PDT 2015


I'm about 90% of the way there on the native code side.  The last part is
tricky, but still mechanical.  After I finish that the trick is going to be
getting the test suite running.  I suspect that will be nasty, just because
there's a few thousand lines of code and it's going to be a pain to find
everything.  Might need some help there, I'll let you know.

On Wed, Oct 7, 2015 at 1:27 PM kwadwo amankwa <que at lunarblack.com> wrote:

> I'll work my way backwards . Eventually I'll get there. Anyway if you need
> any help on adding python 3 support , I'll be more than happy to help
>
> thanks ,
> Que
>
>
> On 07/10/15 20:40, Zachary Turner wrote:
>
> When you built LLDB, did you specify a -DPYTHON_HOME=<path> on your CMake
> command line, and also run the install_custom_python.py script?  There's a
> lot of steps, so it seems like almost everybody misses at least one step
> when doing this.
>
> I'm actively working (as in, literally right now) on getting LLDB to work
> with Python 3.  If all goes smoothly, hopefully all of these problems will
> disappear and everything will just work without any user configuration
> required at all.
>
> On Wed, Oct 7, 2015 at 12:17 PM kwadwo amankwa <que at lunarblack.com> wrote:
>
>> Hi Zachary,
>>
>> Ok so I did end up reconfiguring it and rebuilding but that was no help .
>> I then realized that I was importing python27.dll as well as python27_d.dll
>> . When I rebuilt liblldb I started getting an single unresolved error for
>> imp_Py_InitModule which I guess was the symbol for the Py_InitModule4
>> python api  which is actually a macro which is defined depending on a few
>> flags . So I ended up rebuilding python27 and the unresolved error went
>> away and built everything from scratch . The good news is that when I
>> invoke the 'script' command in the lldb interpreter it doesn't crash
>> anymore and I can use the python interpreter . I can even import the lldb
>> module without getting the embedded interpreter Import error . However I
>> when I actually import lldb from a python module and run it with the
>> standalone interpreter I still get the Import Error.  I have checked the
>> PYTHONPATH which was different for the lldb embedded interpreter and
>> updated the variable to contain the missing paths but no cigar :-(    .
>> Any suggestions ?
>>
>>
>> On 05/10/15 21:21, Zachary Turner wrote:
>>
>> Can you try to regenerate CMake with that command line and see if that
>> helps?
>>
>> On Mon, Oct 5, 2015 at 1:17 PM kwadwo amankwa <que at lunarblack.com> wrote:
>>
>>>
>>> No
>>>
>>> On 05/10/15 21:15, Zachary Turner wrote:
>>>
>>> Are you using -DCMAKE_BUILD_TYPE=Debug when you generate CMake?
>>>
>>> On Mon, Oct 5, 2015 at 1:14 PM kwadwo amankwa <que at lunarblack.com>
>>> wrote:
>>>
>>>> Thanks for the response ,  sorry for the delay. As a matter of fact I
>>>> actually got rid of the system python and installed my custom version.  I
>>>> do suspect it is a linking problem though. When I build liblldb.dll it
>>>> always loads python27.dll instead of python27_d.dll. Do you happen to know
>>>> where the python27 lib is specified as an input library because the project
>>>> properties in liblldb does not specify it . however the linker complains if
>>>> I don't specify the lib directory in 'additional directories' and when I do
>>>> it always links to the python27lib. I grepped the whole build directory and
>>>> two files SystemInitializer.obj and LLDBWrapPython.obj seem to contain
>>>> /DEFAULTLIB:python27.lib. Do you have an idea of what is causing the
>>>> compiler to do this ?
>>>>
>>>>
>>>> On 05/10/15 19:13, Zachary Turner wrote:
>>>>
>>>> Ahh, I thought you were doing this from inside LLDB.  There are a
>>>> couple of problems:
>>>>
>>>> 1) You might be running with the system Python, not the custom Python
>>>> you built with VS2013.  What is the value of `sys.executable`?
>>>> 2) Even if you are running your own Python, the regular Python appears
>>>> to be in your `sys.path`.  You will need to unset PYTHONPATH and PYTHONHOME
>>>> from pointing to your system Python.  PYTHONHOME should point to your
>>>> custom Python, and PYTHONPATH should point to the `lib\site-packages`
>>>> directory that I mentioned earlier in your build directory.
>>>>
>>>>
>>>>
>>>> On Mon, Oct 5, 2015 at 11:06 AM kwadwo amankwa <que at lunarblack.com>
>>>> wrote:
>>>>
>>>>> here it is;
>>>>>
>>>>> C:\Users\redbandit\Documents\GitHub\pygui>python
>>>>> Python 2.7.10 (default, Sep 18 2015, 02:35:59) [MSC v.1800 64 bit
>>>>> (AMD64)] on win32
>>>>> Type "help", "copyright", "credits" or "license" for more information.
>>>>> >>> import sys
>>>>> >>> sys.path
>>>>> ['', 'C:\\Python27\\Lib',
>>>>> 'C:\\Users\\redbandit\\llvm\\build\\Debug\\lib\\site-packages\\lldb',
>>>>> 'C:\\Users\\redbandit\\llvm\\build\\tools\\lldb\\scripts',
>>>>> 'C:\\Users\\redbandi t\\Documents\\GitHub\\pygui',
>>>>> 'C:\\Python27\\python27.zip', 'C:\\Python27\\DLLs',
>>>>> 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27',
>>>>> 'C:\\Python27\\li b\\site-packages']
>>>>> >>> import lldb
>>>>> Traceback (most recent call last):
>>>>>   File "<string>", line 1, in <module>
>>>>> ImportError: No module named embedded_interpreter
>>>>> >>> lldb.__file__
>>>>> 'C:\\Users\\redbandit\\llvm\\build\\tools\\lldb\\scripts\\lldb.pyc'
>>>>> >>> sys.path
>>>>> ['C:/Users/redbandit/llvm/build/Debug/lib/site-packages/lldb',
>>>>> 'C:/Users/redbandit/llvm/build/Debug/lib/site-packages/lib/site-packages',
>>>>> '', 'C:\\Python27\\Lib', 'C:\\Users\\
>>>>> redbandit\\llvm\\build\\Debug\\lib\\site-packages\\lldb',
>>>>> 'C:\\Users\\redbandit\\llvm\\build\\tools\\lldb\\scripts',
>>>>> 'C:\\Users\\redbandit\\Documents\\GitHub\\pygui', 'C:\\Pyt
>>>>> hon27\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib\\plat-win',
>>>>> 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27',
>>>>> 'C:\\Python27\\lib\\site-packages', '.']
>>>>>
>>>>>
>>>>> On 05/10/15 18:48, Zachary Turner wrote:
>>>>>
>>>>> Can you run the followign commands and paste the output?
>>>>>
>>>>> >>> import sys
>>>>> >>> sys.path
>>>>> ['D:/src/llvmbuild/ninja/bin',
>>>>> 'D:/src/llvmbuild/ninja/lib/site-packages',
>>>>> 'D:\\src\\llvmbuild\\ninja\\bin\\python27_d.zip',
>>>>> 'C:\\Python27_LLDB\\x86\\DLLs', 'C:\\Python27_LLDB\\x86\\lib',
>>>>> 'C:\\Python27_LLDB\\x86\\lib\\plat-win',
>>>>> 'C:\\Python27_LLDB\\x86\\lib\\lib-tk', 'D:\\src\\llvmbuild\\ninja\\bin'
>>>>> , 'C:\\Python27_LLDB\\x86',
>>>>> 'C:\\Python27_LLDB\\x86\\lib\\site-packages', '.']
>>>>> >>> import lldb
>>>>> >>> lldb.__file__
>>>>> 'D:/src/llvmbuild/ninja/lib/site-packages\\lldb\\__init__.pyc'
>>>>> >>> sys.path
>>>>> ['D:/src/llvmbuild/ninja/bin',
>>>>> 'D:/src/llvmbuild/ninja/lib/site-packages',
>>>>> 'D:\\src\\llvmbuild\\ninja\\bin\\python27_d.zip',
>>>>> 'C:\\Python27_LLDB\\x86\\DLLs', 'C:\\Python27_LLDB\\x86\\lib',
>>>>> 'C:\\Python27_LLDB\\x86\\lib\\plat-win',
>>>>> 'C:\\Python27_LLDB\\x86\\lib\\lib-tk', 'D:\\src\\llvmbuild\\ninja\\bin'
>>>>> , 'C:\\Python27_LLDB\\x86',
>>>>> 'C:\\Python27_LLDB\\x86\\lib\\site-packages', '.']
>>>>> >>>
>>>>>
>>>>> and also make sure that in the same folder as your _lldb_d.pyd, there
>>>>> is an embedded_interpreter.py?
>>>>>
>>>>> On Mon, Oct 5, 2015 at 9:14 AM kwadwo amankwa <que at lunarblack.com>
>>>>> wrote:
>>>>>
>>>>>> Hi Zachary,
>>>>>>
>>>>>> thanks for the reply , I did use MSBUILD  as Ninja didn't work for me
>>>>>> on my system.  As far as the _lldb_d.pyd file is concerned it is stored in
>>>>>> the same place.  and it is being used by lldb.py because everything else
>>>>>> works besides the embedded_interpreter. That is I am able to use the api
>>>>>> from python it is just that interpreter issue that comes up .
>>>>>>
>>>>>> Cheers,
>>>>>> Que
>>>>>>
>>>>>>
>>>>>> On 05/10/15 16:56, Zachary Turner wrote:
>>>>>>
>>>>>> Are you using MSBuild or Ninja to build (i.e. are you clicking the
>>>>>> Build Solution button in Visual Studio or running ninja from command
>>>>>> line)?  I don't know where it puts this stuff with a VS2013 build, but with
>>>>>> a ninja build, your directory will be organized like this:
>>>>>>
>>>>>> build
>>>>>> |___bin
>>>>>>      |___lldb.exe
>>>>>>      |___liblldb.dll
>>>>>> |___lib
>>>>>>      |___site-packages
>>>>>>            |___lldb
>>>>>>                  |___lldb_d.pyd   // If this is a debug build,
>>>>>> lldb.pyd if release
>>>>>>
>>>>>> I'm betting you're missing the pyd file.  Can you confirm? Then we
>>>>>> can diagnose that if it turns out to be the problem.
>>>>>>
>>>>>> On Mon, Oct 5, 2015 at 5:20 AM kwadwo amankwa via lldb-dev <
>>>>>> lldb-dev at lists.llvm.org> wrote:
>>>>>>
>>>>>>> Hi guys,
>>>>>>>
>>>>>>> Can someone point me in the right direction on this . I have managed
>>>>>>> to
>>>>>>> set up my environment on windows , compiling python2.7.10 using
>>>>>>> VS2013
>>>>>>> and building llvm/lldb in VS2013. lldb and all its libraries build
>>>>>>> successfully so its just when I import lldb into my python project I
>>>>>>> get
>>>>>>> this error.
>>>>>>>
>>>>>>> File "<string>", line 1, in <module>
>>>>>>> Import error: No module named embedded_interpreter
>>>>>>>
>>>>>>>   Also when I use the 'script' command in the lldb interpreter , lldb
>>>>>>> completely crashes  with an unhandled exception in the  python
>>>>>>> file_write  function (fileobject.c:1852)
>>>>>>>
>>>>>>> n2 = fwrite(s, 1, n, f->f_fp);
>>>>>>>
>>>>>>> the call to fwrite causes an access violation  . My intuition tells
>>>>>>> me
>>>>>>> that i'm missing  a lib or something but I can't put my finger on it.
>>>>>>> Please Help !
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> lldb-dev mailing list
>>>>>>> lldb-dev at lists.llvm.org
>>>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20151007/0c331260/attachment-0001.html>


More information about the lldb-dev mailing list