How does it differ from the working ironpython environment? From: PythonDotNet [mailto:pythondotnet-bounces+btribble=ea....@python.org] On Behalf Of Daniel Krause Sent: Wednesday, January 16, 2013 11:49 AM To: pythondotnet@python.org Subject: Re: [Python.NET] Problem to use a dll: System.ApplicationException: Error 1: OpenDevice: Invalid handle
Hi Brett, to check your suggestion I added a print statement to the script (after clr.AddReference("xiAPI40.NET"): print sys.path The result looks ok to me: ['C:\\Users\\mdk\\workspace\\camera\\', 'C:\\Python27\\lib\\site-packages\\distribute- 0.6.21-py2.7.egg', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib \\plat-win<file:///\\plat-win>', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\si te-packages', 'C:\\Python27\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg-inf o', 'C:\\Users\\mdk\\.eclipse\\org.eclipse.platform_4.2.0_248562372\\plugins\\or g.python.pydev_2.7.1.2012100913\\pysrc\\pydev_sitecustomize', 'C:\\Windows\\syst em32\\python27.zip', 'C:\\Python27\\lib\\site-packages\\PIL', 'C:\\Python27\\lib \\plat-win<file:///\\plat-win>', 'C:\\Python27\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg-info ', 'C:\\Python27\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg-info', 'C:\\Wi ndows\\Microsoft.NET\\Framework64\\v4.0.30319\\'] I also copied the folder to a temp folder and run the script from there without adding the new path explicitly to the python path. The new location is then automatically added to the path, and the console output looks the similar. C:\temp\camera> python.exe .\testcam.py ['C:\\temp\\camera', 'C:\\Python27\\lib\\site-packages\\distribute-0.6.21-py2.7.egg', 'C:\\Windows\\system32\\python27.z ip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python2 7', 'C:\\Python27\\lib\\site-packages', 'C:\\Python27\\lib\\site-packages\\PIL', 'C:\\Python27\\lib\\site-packages\\setu ptools-0.6c11-py2.7.egg-info', 'C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\', 'C:\\Users\\mdk\\workspace\\camera\\'] Traceback (most recent call last): File ".\testcam.py", line 9, in <module> cam.OpenDevice(0) System.ApplicationException: Error 1: OpenDevice: Invalid handle at xiApi.NET.xiCam.throwException(Int32 errNum, String param) at xiApi.NET.xiCam.OpenDevice(Int32 DevID) Best regards Daniel 2013/1/15 Tribble, Brett <btrib...@ea.com<mailto:btrib...@ea.com>> You might try making and swapping in a simple assembly that opens a command prompt so that you can inspect the environment variables. For me, this is almost always a system path / current directory issue. Hopefully I'm not leading you down a false road. From: m.daniel.kra...@googlemail.com<mailto:m.daniel.kra...@googlemail.com> [mailto:m.daniel.kra...@googlemail.com<mailto:m.daniel.kra...@googlemail.com>] On Behalf Of Daniel Krause Sent: Tuesday, January 15, 2013 1:44 PM To: Tribble, Brett Subject: Re: [Python.NET] Problem to use a dll: System.ApplicationException: Error 1: OpenDevice: Invalid handle No, I don't have the source, only the dll. But thanks for the sugggestion. Daniel 2013/1/15 Tribble, Brett <btrib...@ea.com<mailto:btrib...@ea.com>> I assume you don't have the source to the .dll? If you do, you can add a line to use debug the error using System.Diagnostics.Debugger.Break(): http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break.aspx From: PythonDotNet [mailto:pythondotnet-bounces+btribble<mailto:pythondotnet-bounces%2Bbtribble>=ea....@python.org<mailto:ea....@python.org>] On Behalf Of Daniel Krause Sent: Tuesday, January 15, 2013 12:42 PM To: pythondotnet@python.org<mailto:pythondotnet@python.org> Subject: [Python.NET] Problem to use a dll: System.ApplicationException: Error 1: OpenDevice: Invalid handle I am trying to use a dll to control a camera. It is possible for me to use the dll with ironpython, but I fail to use it with python for .NET (CLR 4.0). (And I would like to use e.g. numpy as well, so I need python for .NET). Below follow a short test script, the python / ironpython versions and their console output when running the test script. Any hints are welcome. Thank you Daniel ######################################################## #test script "testcam.py" #1 for python for .NET import clr import sys sys.path.append("C:\\Users\\mdk\\workspace\\camera\\") clr.AddReference("xiAPI40.NET") from xiApi.NET import * cam = xiCam() cam.OpenDevice(0) print cam.GetParamString(PRM.DEVICE_NAME) #print device name ############### #console output showing the python version, #installed is .NET-support with pythonnet-2.0dev.clr4.0.win-amd64-py2.7.exe on Win7 64bit PS C:\Users\mdk\workspace\camera> python.exe Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. ############### #running test script #1 with python, console output Traceback (most recent call last): File "C:\Users\mdk\workspace\camera\testcam.py", line 8, in <module> cam.OpenDevice(0) System.ApplicationException: Error 1: OpenDevice: Invalid handle at xiApi.NET.xiCam.throwException(Int32 errNum, String param) at xiApi.NET.xiCam.OpenDevice(Int32 DevID) ###################################################### #test script "testcam.py" #1 modified for ironpython, test script #2 import clr import sys sys.path.append("C:\\Users\\mdk\\camera\\") clr.AddReference("xiAPI40.NET.dll") from xiApi.NET import * cam = xiCam() cam.OpenDevice(0) print cam.GetParamString(PRM.DEVICE_NAME) #print device name ############### #console output showing the ironpython version PS C:\Users\mdk\workspace\camera> ipy.exe IronPython 2.7 (2.7.0.40) on .NET 4.0.30319.17929 Type "help", "copyright", "credits" or "license" for more information. >>> ############## #running test script #2 with ironpython, console output MQ013MG-E2
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org http://mail.python.org/mailman/listinfo/pythondotnet