#149: packed binary tries to import all the .py files in the current directory
------------------------------+---------------------------------------------
Reporter: mrk...@… | Owner: giovannibajo
Type: defect | Status: new
Priority: normal | Milestone: PyInstaller 1.4
Component: PyInstaller | Version: PyInstaller 1.4
Severity: major | Keywords:
------------------------------+---------------------------------------------
Old description:
> I have a packed binary, cssh:
>
> Linux RH [17:35] root /var/www/html # ./cssh
> Traceback (most recent call last):
> File "<string>", line 19, in ?
> File "/var/www/html/pyinstaller-py2.4/iu.py", line 439, in importHook
> mod = _self_doimport(nm, ctx, fqname)
> File "/var/www/html/pyinstaller-py2.4/iu.py", line 524, in doimport
> exec co in mod.__dict__
> File "/var/www/html/warnings.py", line 3, in ?
> from hosts_sqla import Host, Architecture, OS_Kind, OS_version,
> Email, Virtualization, session
> File "/var/www/html/pyinstaller-py2.4/iu.py", line 439, in importHook
> mod = _self_doimport(nm, ctx, fqname)
> File "/var/www/html/pyinstaller-py2.4/iu.py", line 524, in doimport
> exec co in mod.__dict__
> File "./hosts_sqla.py", line 3, in ?
> from sqlalchemy import create_engine, Table, Column, String, Integer,
> MetaData, ForeignKey, desc, asc, and_, or_
> File "/var/www/html/pyinstaller-py2.4/iu.py", line 458, in importHook
> raise ImportError, "No module named %s" % fqname
> ImportError: No module named sqlalchemy
>
> The cssh.py script / cssh packed binary does NOT rely on module
> sqlalchemy. Instead, I have a script "warnings.py" in /var/www/html that
> makes use of sqlalchemy module. When ran from /var/www/html, cssh binary
> imports warnings.py located there for no reason apparent to me.
>
> This results in exceptions instead of normal program functioning.
>
> I have even deleted all the nonstandard directories from sys.path:
>
> sys.path = [ p for p in sys.path if p.startswith('/usr/lib') ]
>
> But the packed binary with the code above still tries to import other
> scripts. Obviously, normal script (cssh.py) does not do that.
New description:
I have a packed binary, cssh:
{{{
Linux RH [17:35] root /var/www/html # ./cssh
Traceback (most recent call last):
File "<string>", line 19, in ?
File "/var/www/html/pyinstaller-py2.4/iu.py", line 439, in importHook
mod = _self_doimport(nm, ctx, fqname)
File "/var/www/html/pyinstaller-py2.4/iu.py", line 524, in doimport
exec co in mod.__dict__
File "/var/www/html/warnings.py", line 3, in ?
from hosts_sqla import Host, Architecture, OS_Kind, OS_version, Email,
Virtualization, session
File "/var/www/html/pyinstaller-py2.4/iu.py", line 439, in importHook
mod = _self_doimport(nm, ctx, fqname)
File "/var/www/html/pyinstaller-py2.4/iu.py", line 524, in doimport
exec co in mod.__dict__
File "./hosts_sqla.py", line 3, in ?
from sqlalchemy import create_engine, Table, Column, String, Integer,
MetaData, ForeignKey, desc, asc, and_, or_
File "/var/www/html/pyinstaller-py2.4/iu.py", line 458, in importHook
raise ImportError, "No module named %s" % fqname
ImportError: No module named sqlalchemy
}}}
The cssh.py script / cssh packed binary does NOT rely on module
sqlalchemy. Instead, I have a script "warnings.py" in /var/www/html that
makes use of sqlalchemy module. When ran from /var/www/html, cssh binary
imports warnings.py located there for no reason apparent to me.
This results in exceptions instead of normal program functioning.
I have even deleted all the nonstandard directories from sys.path:
sys.path = [ p for p in sys.path if p.startswith('/usr/lib') ]
But the packed binary with the code above still tries to import other
scripts. Obviously, normal script (cssh.py) does not do that.
--
Comment(by giovannibajo):
This has been further discussed on the mailing list. It is a duplicate of
#166.
--
Ticket URL: <http://www.pyinstaller.org/ticket/149#comment:2>
PyInstaller <http://www.pyinstaller.org>
PyInstaller Project
--
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.