cihologramas / pyueye

Python wrapper for ueye cameras
BSD 3-Clause "New" or "Revised" License
5 stars 3 forks source link

Installation Fails on WindowsXP and Windows 7 #3

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
GCC build fails when executing:

python setup.py install build --compiler=mingw32 

C:\MinGW32-xy\bin\gcc.exe -mno-cygwin -mdll -O -Wall -I. -IC:\Python27\include 
-IC:\Python27\PC -c ueye\constants.c -o 
build\temp.win32-2.7\Release\ueye\constants.o None

On both Windows XP and Windows 7 systems. Running Python 2.7.3 with Cython 
0.17.2-2

Original issue reported on code.google.com by Ca5u5usu...@gmail.com on 11 Feb 2013 at 6:43

GoogleCodeExporter commented 9 years ago
I overcame this by removing all the -mno-cygwin references from 
cygwinccompiler.py in distutils.  However, this leads onto a new error which is:

building 'ueye.constants' extension
C:\MinGW\bin\gcc.exe -mdll -O -Wall -I. -IC:\Python27\include -IC:\Python27\PC 
-c ueye\constants.c -o build\temp.win32-2.7\Release\ueye\constants.o -D__LINUX__
ueye\constants.c:312:18: fatal error: uEye.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1

My uEye is installed at: C:\Program Files\IDS\uEye

Any ideas?

Original comment by laurence...@gmail.com on 30 May 2013 at 4:18

GoogleCodeExporter commented 9 years ago
On Windows the compiler seems to be unable to locate a couple of the required 
files (specifically uEye.h and uEye_api.lib/uEye_api_64.lib from the uEye 
installation directory). I got around this by dropping them into an include 
directory and adding it both to include_dirs in setup.py and to the LIB 
environment variable. (I also had to throw a few Python files in there, but I 
suspect that's due to my choice of Python distribution.)

Because IDS's versioning is slightly different between Linux and Windows you 
might want to grab these files from the Linux drivers. Alternatively, the 
closest match I found was to use the July 2013 version of pyueye with the .h 
and .lib files from the Windows version of uEye 3.82. The only change that then 
needs to be made to pyueye is to remove the 2 lines in constants.pyx which 
mention the UI233X sensors.

I was also getting syntax errors from uEye.h due to the IDSEXP/IDSEXPUL 
defines. There appears to be a redundant check for whether c or c++ is being 
used (the whole file is in a extern "C" block) and the c++ defines are wrongly 
selected. If you remove "defined (_PURE_C) &&" from the if statement 
immediately after "#include <windows.h>" it should fix the problem.

After that the wrapper compiled fine for me using the Windows SDK compilers. 
Also, don't forget to change extra_compile_args in setup.py to the appropriate 
platform.

Original comment by rst...@gmail.com on 19 Aug 2013 at 3:01

GoogleCodeExporter commented 9 years ago
Win 8.1 Pro 64bit, installation issue.

I edited the setup.py file to include the dirs with uEye.h and uEye_api_64.lib 

include_dirs = [".", r'c:\Program Files\IDS\uEye\Develop\Lib', r'c:\Program 
Files\IDS\uEye\Develop\include', r'd:\install\pyueye-4.20-rev19\trunk\ueye'],   
# adding the '.' to include_dirs is CRUCIAL!!

removed "defined (_PURE_C) &&" from the if statement in uEye.h

Still errors occur.. does someone know, how to fix it?
MSVC2012 64bit

Original comment by ivan.pir...@gmail.com on 12 Aug 2014 at 3:41

Attachments:

GoogleCodeExporter commented 9 years ago
It's down to versioning issues between the Linux and Windows drivers. Looks 
like constants.pyx refers to a load of identifiers that aren't defined in the 
current Windows version of uEye.h. Just comment out the offending lines in 
constants.pyx (for example, lines 529 to 577).

Original comment by rst...@gmail.com on 14 Aug 2014 at 11:17