Hi, all.

There is a top level script, called SL_Launcher.  This script may decide to launch another script, download_update as a subprocess:

download_process = subprocess.Popen([path_to_downloader, ...args to download_update] ...args to subprocess)

where path_to_downloader is the pyinstaller created executable in the same directory as the pyinstaller created executable of SL_Launcher.

Inside download_update, it imports a module called InstallerUserMessage.py, which isolates all of the Tkinter handling for the various other modules. For test purposes, InstallerUserMessage has a main() that exercises the various methods. For the implementation of a progressbar, it imports Queue.

When I run the main() method from InstallerUserMessage, it runs without error.

However, when I run SL_Launcher.exe or just download_update.exe, I get:

LOADER: Running SL_Launcher.py
Traceback (most recent call last):
 File "SL_Launcher.py", line 30, in <module>
   import InstallerUserMessage
 File "c:\cygwin64\tmp\pip-build-xzzmth\pyinstaller\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
 File "InstallerUserMessage.py", line 33, in <module>
   import Queue
ImportError: No module named Queue
Failed to execute script SL_Launcher
LOADER: OK.
LOADER: Cleaning up Python interpreter.
LOADER: Back to parent (RC: -1)
LOADER: Doing cleanup
LOADER: Freeing archive status for c:\Program Files (x86)\SecondLifeTestCoyotVMP\SL_Launcher.exe


or

LOADER: Running download_update.py
Traceback (most recent call last):
 File "download_update.py", line 33, in <module>
   import os
 File "c:\cygwin64\tmp\pip-build-xzzmth\pyinstaller\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
 File "InstallerUserMessage.py", line 33, in <module>
   import Queue
ImportError: No module named Queue
Failed to execute script download_update
LOADER: OK.
LOADER: Cleaning up Python interpreter.
LOADER: Back to parent (RC: -1)
LOADER: Doing cleanup
LOADER: Freeing archive status for c:\Program Files (x86)\SecondLifeTestCoyotVMP\download_update.exe

The only other error output message is this:

LOADER: Error activating the context: ActivateActCtx:
An attempt to set the process default activation context failed because the process default activation context was already set.


If I add import Queue to SL_Launcher (it is already in download_update), there is no problem with those import statements.  If I reorder the import statements in InstallerUserMessage to put Queue at the end (I typically alphabetize them), it has no problem finding os, sys, threading, time, Tkinter, ttk, and webbrowser, and dies on Queue.

By way of environment notes, Windows 7, Python 2.7.11 and pyinstaller 3.2. I am not using any custom spec files. This code works on Mac as Python scripts. 

Is there something I need to do to get pyinstaller to find Queue in an imported module?  I find it curious and strange that it found all of other imports but not Queue.

Best,

coyot
-- 
https://wiki.lindenlab.com/wiki/User:Coyot/Tao_of_Linden
https://wiki.lindenlab.com/wiki/Shrek_Ears


--
You received this message because you are subscribed to the Google Groups "PyInstaller" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pyinstaller+unsubscr...@googlegroups.com.
To post to this group, send email to pyinstaller@googlegroups.com.
Visit this group at https://groups.google.com/group/pyinstaller.
For more options, visit https://groups.google.com/d/optout.

Reply via email to