Re: can't find win32api from embedded pyrun call

2013-09-06 Thread David M. Cotter
the problem was: ActivePython does not install debug libraries, so you must 
link with release libraries in your project.  but if you run the debug version, 
you're linking against debug libraries which conflict with the ones linked to 
by python.  

"fixed" by running the release version.  basically, it's not possible to debug 
with ActivePython due to ActiveState not including debug libs.  grr
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: can't find win32api from embedded pyrun call

2013-09-04 Thread Tim Golden
On 03/09/2013 21:50, David M. Cotter wrote:
> I find i'm having this problem, but the solution you found isn't
> quite specific enough for me to be able to follow it.
> 
> I'm embedding Python27 in my app.  I have users install
> ActivePython27 in order to take advantage of python in my app, so the
> python installation can't be touched as it's on a user's machine.
> 
> When I attempt to do:
>> import win32api
> 
> i get this:
>> Traceback (most recent call last): File "startup.py", line 5, in
>>  ImportError: DLL load failed: The specified module could
>> not be found.

You'll likely get more input from the guys on the python-win32 list.

Most times I've come across this issue it's been because the pywin32
package (or the whole Python distribution if you're using ActiveState)
was not installed as an administrator / elevated. I'm not sure I've ever
fathomed why, and the investigation isn't helped by the import dance
which the pywin32 code does. I don't remember solving it without a
reinstall on the user's machine.

TJG
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: can't find win32api from embedded pyrun call

2013-09-03 Thread David M. Cotter
note that when the script is called, i DO see this in the output window:

> 'kJams 2 Debug.exe': Loaded 'C:\Python27\Lib\site-packages\win32\win32api.pyd'
> 'kJams 2 Debug.exe': Loaded 'C:\Windows\SysWOW64\pywintypes27.dll'
> 'kJams 2 Debug.exe': Unloaded 
> 'C:\Python27\Lib\site-packages\win32\win32api.pyd'
> 'kJams 2 Debug.exe': Unloaded 'C:\Windows\SysWOW64\pywintypes27.dll'
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: can't find win32api from embedded pyrun call

2013-09-03 Thread David M. Cotter
I find i'm having this problem, but the solution you found isn't quite specific 
enough for me to be able to follow it. 

I'm embedding Python27 in my app.  I have users install ActivePython27 in order 
to take advantage of python in my app, so the python installation can't be 
touched as it's on a user's machine.

When I attempt to do:
>import win32api

i get this:
>Traceback (most recent call last):
>  File "startup.py", line 5, in 
>ImportError: DLL load failed: The specified module could not be found.

I someone suggested i manually load the dependent libraries in the correct 
order, like this:

>import pywintypes
>import pythoncom
>import win32api

but then i get this:
>Traceback (most recent call last):
>  File "startup.py", line 3, in 
>  File "C:\Python27\lib\site-packages\win32\lib\pywintypes.py", line 124, in 
> 
>__import_pywin32_system_module__("pywintypes", globals())
>  File "C:\Python27\lib\site-packages\win32\lib\pywintypes.py", line 64, in 
> __import_pywin32_system_module__
>import _win32sysloader
ImportError: DLL load failed: The specified module could not be found.

the ultimate goal here is actually to do this:
>from win32com.client.gencache import EnsureDispatch

which currently yields:
>Traceback (most recent call last):
>  File "startup.py", line 3, in 
>  File "C:\Python27\lib\site-packages\win32com\__init__.py", line 5, in 
> 
>import win32api, sys, os
>ImportError: DLL load failed: The specified module could not be found.

So, if anyone has any idea, that would be super duper great.  thanks so much!

notes: my paths are definitely set correctly
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: can't find win32api from embedded pyrun call

2006-06-20 Thread Jim
Miki wrote:

> IIRC you need to set the path explicitly in an embedded interpreter.
> See the code in "site.py" (which again IMO is *not* imported when the
> interpreter starts).

Thanks Miki.  Actually that doesn't turn out to be the problem.  If I
display sys.path within the embedded script, it shows the complete list
of paths, there is no need to pre-load.

The problem turned out to be a mismatch of parts.  For one thing,
building the debug lib from Python sources using VS2005 leads to the
crash in PyInitialize (I don't know why others haven't run into this);
building with VS2003 did away with that.  But that then led to the
well-known problem with a FILE* where the app is using one msvcrt and
the lib another.  At some point in fixing these issues, the "cannot
find win32api" went away.

I now use this trick from a colleague which allows me to build a debug
version of my app but load the release version of the lib: bracket the
"#include python.h" statement with undef/redef of _DEBUG.

And this trick to get around the FILE* problem (since my app is VS2005
and the lib is 2003): instead of PyRun_SimpleFile, use
PyRun_SimpleString ("execfile(fname)").  I got this from the win32 FAQ.

I hope someone benefits from this, it cost me plenty to figure out.

  -- Jim

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: can't find win32api from embedded pyrun call

2006-06-19 Thread Miki
Hello Jim,

>   // Py_Initialize();
>   Py_InitializeEx(0);
>   PyRun_SimpleString("from win32com.client import *");
>
> Here's what it does on the last line:
>
> File "D:\Python\Lib\site-packages\win32com\__init__.py", line 5, in ?
>   import win32api, sys, ok
> ImportError: No module named win32api
>
> The same line runs fine in IDLE or at the command prompt.  It also runs
> without complaint if I run a release version of the app.  To build the
> debug version I had to build python42_d.lib/dll myself.  The reason I
> can't call PyInitialize is that it crashes with an "invalid signal"
> error.
>
> I don't think it's a path issue -- I've checked system path, sys.path,
> pythonpath env var, and the pythonpath entry in the registry, all of
> them loaded with directories including the one with win32api.pyd.
> Besides, if it were an install or path problem, why would it work at
> the command prompt?
IIRC you need to set the path explicitly in an embedded interpreter.
See the code in "site.py" (which again IMO is *not* imported when the
interpreter starts).

HTH,
Miki
http://pythonwise.blogspot.com/

-- 
http://mail.python.org/mailman/listinfo/python-list


can't find win32api from embedded pyrun call

2006-06-19 Thread Jim
I am trying to figure out how to embed Python in a little C++ Windows
console app.  Here's the code:

// Py_Initialize();
Py_InitializeEx(0);
PyRun_SimpleString("from win32com.client import *");

Here's what it does on the last line:

File "D:\Python\Lib\site-packages\win32com\__init__.py", line 5, in ?
import win32api, sys, ok
ImportError: No module named win32api

The same line runs fine in IDLE or at the command prompt.  It also runs
without complaint if I run a release version of the app.  To build the
debug version I had to build python42_d.lib/dll myself.  The reason I
can't call PyInitialize is that it crashes with an "invalid signal"
error.

I don't think it's a path issue -- I've checked system path, sys.path,
pythonpath env var, and the pythonpath entry in the registry, all of
them loaded with directories including the one with win32api.pyd.
Besides, if it were an install or path problem, why would it work at
the command prompt?

Could it be a problem with the debug lib I built?  Any suggestions are
welcome.

  -- Jim

-- 
http://mail.python.org/mailman/listinfo/python-list