From: Phil R. <phi...@la...> - 2010-07-02 17:32:06
|
Hi, I have recently switched to compiling my app on Vista instead of XP. It builds fine but I ran into the same problem others have reported with DLL incompatibilities when running the compiled app on OS's other than Vista. Fortunately, using the dll_excludes has fixed this problem for most of my target OS's. The one remaining problem is Windows NT. When I run my package on NT I get the error "Unable to Locate DLL" and the details say "The dynamic link library POWRPROF.dll could not be found in the specified path C:\Program Files\Precision Tile\lib;;C:\WINNT\System32;C:\WINNT\system;C:\WINNT;C:\WINNT\System32;C:\WINNT." I am testing on clean installs of each OS. At first I thought POWRPROF.dll might not be included with Windows NT but sure enough I found it under C:\WINDOWS\SYSTEM. This path is suspiciously absent from the path list shown in the error message above. I have searched high and low on the internet but I haven't been able to find a solution to this problem. Does anyone know how/if I can modify the DLL search path for my application? Best regards, Phil |
From: <py...@bd...> - 2010-07-02 18:10:53
|
Phil, Add POWRPROF.dll to your list of excluded DLLs, eg. you want to make sure that this DLL doesn't get included in your compiled exe or its associated library.zip. Malcolm |
From: Phil R. <phi...@la...> - 2010-07-02 19:56:35
|
Thanks Malcolm, I did try that and that's when I got the 'Unable to Locate DLL' error. When its not excluded I get a DLL compatibility error (missing entry point error IIRC) similar to what people have reported on XP. As I mentioned before, NT does have the POWRPROF.dll installed, its just not in the path that my app is searching. The DLL is in C:\WINDOWS\SYSTEM but for some reason that directory is not in the search path. I am testing on a virtual machine with NT 4.0 installed. I'm using Python 2.3 and version 0.6.9 of py2exe. Best regards, Phil --------------- Phil Rittenhouse Laurel Creek Software www.LaurelCreekSoftware.com ----- Original Message ----- From: <py...@bd...> To: "Phil Rittenhouse" <phi...@la...>; <py2...@li...> Sent: Friday, July 02, 2010 2:10 PM Subject: Re: [Py2exe-users] DLL search path on Windows NT > Phil, > > Add POWRPROF.dll to your list of excluded DLLs, eg. you want to make > sure that this DLL doesn't get included in your compiled exe or its > associated library.zip. > > Malcolm |
From: <py...@bd...> - 2010-07-02 20:24:05
|
Phil, > As I mentioned before, NT does have the POWRPROF.dll installed, its just not in the path that my app is searching. The DLL is in C:\WINDOWS\SYSTEM but for some reason that directory is not in the search path. POWRPFOF.dll is a Windows system DLL. Make sure you are not distributing this file with your EXE. Note that Windows system DLL's can not be copied and used across different versions of Windows. I believe this is the problem you are having, eg. your Py2exe project is pulling in POWRPROF.dll and/or ***other*** Windows system DLL's from your development workstation. Unless you have a special 3rd party module, you should normally only have the Python2x.dll in your distribution. If you have OTHER DLL's in your distribution and you can confirm they are Windows system DLLs, then make sure to exclude these DLL's in your Py2exe project. Malcolm |
From: Phil R. <phi...@la...> - 2010-07-02 20:54:04
|
Hi Malcolm, You are correct, this is the problem I orignally had before I added the system DLL's to the excluded list. I don't have any system DLL's in my distribution anymore. As I mentioned in my original email, it all now works fine on Win 2K, XP and Vista, but when I run my app on NT it doesn't find the POWRPROF.dll. Thanks for your help. Phil --------------- Phil Rittenhouse Laurel Creek Software www.LaurelCreekSoftware.com ----- Original Message ----- From: <py...@bd...> To: "Phil Rittenhouse" <phi...@la...>; <py2...@li...> Sent: Friday, July 02, 2010 4:23 PM Subject: Re: [Py2exe-users] DLL search path on Windows NT > Phil, > >> As I mentioned before, NT does have the POWRPROF.dll installed, its just >> not in the path that my app is searching. The DLL is in C:\WINDOWS\SYSTEM >> but for some reason that directory is not in the search path. > > POWRPFOF.dll is a Windows system DLL. Make sure you are not distributing > this file with your EXE. > > Note that Windows system DLL's can not be copied and used across > different versions of Windows. I believe this is the problem you are > having, eg. your Py2exe project is pulling in POWRPROF.dll and/or > ***other*** Windows system DLL's from your development workstation. > > Unless you have a special 3rd party module, you should normally only > have the Python2x.dll in your distribution. If you have OTHER DLL's in > your distribution and you can confirm they are Windows system DLLs, then > make sure to exclude these DLL's in your Py2exe project. > > Malcolm > |
From: <py...@bd...> - 2010-07-02 21:00:11
|
Phil, > when I run my app on NT it doesn't find the POWRPROF.dll. You might be pressing your luck with NT which I'm guessing is over 10 years out of support? The only other idea I have for you is to google 'dependencywalker', download this free utility, and see if its output gives you any clues. Good luck! Malcolm |
From: Daryl T. <dt-...@ha...> - 2010-07-03 07:15:48
|
Phil Rittenhouse wrote: > I have searched high and low on the internet but I haven't been able to find > a solution to this problem. Does anyone know how/if I can modify the DLL > search path for my application? I don't remember if NT's search method was particularly different than 2000's, but one of the DLL search path's is the PATH variable. Ensure that this path contains the missing directory where the DLL lives. You may be able to modify the PATH from within the Python program (I can't remember if this works correctly or not, and don't have the appropriate computer in front of me to check). See - <http://msdn.microsoft.com/en-us/library/ms682586(VS.85).aspx> Cheers. -- Regards, Daryl Tester "This is why I sell beer." -- jwz, http://jwz.livejournal.com/1224702.html |
From: Phil R. <phi...@la...> - 2010-07-03 14:03:24
|
Hi Daryl, > I don't remember if NT's search method was particularly different than > 2000's, > but one of the DLL search path's is the PATH variable. Ensure that this > path contains the missing directory where the DLL lives. I tried manually modifying the PATH in my NT VM to include c:\windows\system. It now finds the powrprof.dll but the dll generates an unexpected error. I think I'm going to take Malcolm's advice and drop support for NT. Thanks for your help. Phil |