On 5/17/2010 3:05 PM, Jussi Rasinmäki wrote:
Sorry, I had disabled the tables hooks for an alternative build.
This is what I get when enabling the hiddenimports again:  [...]

Thanks.

I have found out what it is going on. Normally, Python converts this statement:

   import tables._comp_lzo

into something like:

globals()["tables"] =
   __import__("tables._comp_lzo",
              globals(),
              locals(),
              None)

The last "None" argument is the "fromlist", that is a list of strings that is populated in case of from-import (such as "from foobar import a,b,c").

The bug here was triggered by Pyrex, that compiles the import statement into a call to __import__ with an empy from-list instead of None:


static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list) {
    PyObject *__import__ = 0;
    PyObject *empty_list = 0;
    PyObject *module = 0;
    PyObject *global_dict = 0;
    PyObject *empty_dict = 0;
    PyObject *list;
    __import__ = PyObject_GetAttrString(__pyx_b, "__import__");
    if (!__import__)
        goto bad;
    if (from_list)
        list = from_list;
    else {
        empty_list = PyList_New(0);
        if (!empty_list)
            goto bad;
        list = empty_list;
    }
    [...]



So, the fix is to modify iu.py so to treat an empty from-list just like None. I have committed this fix in [833].

I have also added the import hook for PyTables in [834].

Please, confirm that now PyInstaller works correctly for your application. Thanks!
--
Giovanni Bajo
Develer S.r.l.
http://www.develer.com

--
You received this message because you are subscribed to the Google Groups 
"PyInstaller" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pyinstaller?hl=en.

Reply via email to