On 6/17/2009 2:03 PM, Krzysztof Jakubczyk wrote:
> Hi,
> I want to execute EXE as CGI script under IIS. I have compiled python
> script to executable. Under Apache everything is correct, but under IIS
> I get following error:
>
> Traceback (most recent call last):
> File "<string>", line 3, in ?
> File "c:\python24\Installer\iu.py", line 429, in importHook
> File "c:\python24\Installer\iu.py", line 498, in doimport
> File "c:\python24\Installer\iu.py", line 292, in getmod
> File "c:\python24\Installer\iu.py", line 310, in makeOwner
> File "C:\Python24\Installer\archive.py", line 417, in __init__
> File "C:\Python24\Installer\archive.py", line 305, in __init__
> ValueError: invalid literal for int(): /C:/<DIR where exe is located>/exe ".
>
> I added print statements to iu.py and it turned out that sys.path is the
> following:
>
> ['C:/Windows/TEMP/_MEI31482', '//?/C:/<DIR where exe is located>/exe',
> '\\\\?\\C:\\<DIR where exe is located>\\<File name>.exe?106496']
>
> while when executing exe in regular fashion sys.path is the following:
>
> ['C:/Users/<username>/AppData/Local/Temp/3/_MEI32162', 'c:/<DIR where
> exe is located>/exe', 'c:\\<DIR where exe is located>\\<File
> name>.exe?106496']
>
> The problem is the '?' mark here '//?/C:/<DIR where exe is located>/exe'
>
> What would be the right solution?
I think \\?\ is some kind of UNC path. The problem is that archive.py is
confused becausae it uses "?" as an internal separator, and wasn't ready
to find other uses of "?" within a path.
I guess we just want to ignore any "?" not followed by a valid integer
number. Try the attached patch.
--
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
-~----------~----~----~----~------~----~------~--~---
Index: archive.py
===================================================================
--- archive.py (revision 667)
+++ archive.py (working copy)
@@ -302,7 +302,12 @@
elif offset is None:
for i in range(len(path)-1, -1, -1):
if path[i] == '?':
- offset = int(path[i+1:])
+ try:
+ offset = int(path[i+1:])
+ except ValueError:
+ # Just ignore any spurious "?" in the path
+ # (like in Windows UNC \\?\<path>).
+ continue
path = path[:i]
break
else: