How does it differ from the working ironpython environment?
From: PythonDotNet [mailto:[email protected]] On
Behalf Of Daniel Krause
Sent: Wednesday, January 16, 2013 11:49 AM
To: [email protected]
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 <[email protected]<mailto:[email protected]>>
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: [email protected]<mailto:[email protected]>
[mailto:[email protected]<mailto:[email protected]>]
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 <[email protected]<mailto:[email protected]>>
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>[email protected]<mailto:[email protected]>]
On Behalf Of Daniel Krause
Sent: Tuesday, January 15, 2013 12:42 PM
To: [email protected]<mailto:[email protected]>
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 - [email protected]
http://mail.python.org/mailman/listinfo/pythondotnet