There is no 64 bits Windows build

Bug #587745 reported by Mark Mascolino
20
This bug affects 4 people
Affects Status Importance Assigned to Milestone
pyexiv2
Confirmed
Medium
robinmills

Bug Description

Trying the supplied Windows builds and I get a DLL error as follows:

C:\Python26>python
Python 2.6.5 (r265:79096, Mar 19 2010, 18:02:59) [MSC v.1500 64 bit (AMD64)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyexiv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python26\lib\site-packages\pyexiv2\__init__.py", line 60, in <module>

    import libexiv2python
ImportError: DLL load failed: %1 is not a valid Win32 application.

I've tried your last two Windows builds and got the same effect.

Revision history for this message
Olivier Tilloy (osomon) wrote :

Thanks for the feedback Mark. It looks to me like the issue is with using a 64 bits windows. The current windows installer is compiled for 32 bits windows, and I haven't tested it on 64 bits so far, but it's quite likely the cause of the problem.

Is there any chance you can try it out on a 32 bits windows to confirm that it works there?
What version of windows did you test it on?

Changed in pyexiv2:
status: New → Incomplete
Revision history for this message
Mark Mascolino (mark-mascolino) wrote : Re: [Bug 587745] Re: Windows build fails with load DLL problem

Ahhh yes, that is quite possiblly the problem. I am running Win7x64 here.
 I do have access to a 32bit Vista machine and I will try it there when I
get a chance. I'll let you know.

On Mon, May 31, 2010 at 5:10 AM, Olivier Tilloy <email address hidden> wrote:

> Thanks for the feedback Mark. It looks to me like the issue is with
> using a 64 bits windows. The current windows installer is compiled for
> 32 bits windows, and I haven't tested it on 64 bits so far, but it's
> quite likely the cause of the problem.
>
> Is there any chance you can try it out on a 32 bits windows to confirm that
> it works there?
> What version of windows did you test it on?
>
> ** Changed in: pyexiv2
> Status: New => Incomplete
>
> --
> Windows build fails with load DLL problem
> https://bugs.launchpad.net/bugs/587745
> You received this bug notification because you are a direct subscriber
> of the bug.
>
> Status in pyexiv2, a python binding to exiv2: Incomplete
>
> Bug description:
> Trying the supplied Windows builds and I get a DLL error as follows:
>
> C:\Python26>python
> Python 2.6.5 (r265:79096, Mar 19 2010, 18:02:59) [MSC v.1500 64 bit
> (AMD64)] on
> win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import pyexiv2
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File "C:\Python26\lib\site-packages\pyexiv2\__init__.py", line 60, in
> <module>
>
> import libexiv2python
> ImportError: DLL load failed: %1 is not a valid Win32 application.
>
>
>
> I've tried your last two Windows builds and got the same effect.
>
> To unsubscribe from this bug, go to:
> https://bugs.launchpad.net/pyexiv2/+bug/587745/+subscribe
>

Revision history for this message
Mark Mascolino (mark-mascolino) wrote :

Sorry for taking so long to get back to you but yes the latest version works
fine on py2.6.5 on 32bit Vista.

On Mon, May 31, 2010 at 4:23 PM, Mark Mascolino <email address hidden>wrote:

> Ahhh yes, that is quite possiblly the problem. I am running Win7x64 here.
> I do have access to a 32bit Vista machine and I will try it there when I
> get a chance. I'll let you know.
>
>
> On Mon, May 31, 2010 at 5:10 AM, Olivier Tilloy <email address hidden>wrote:
>
>> Thanks for the feedback Mark. It looks to me like the issue is with
>> using a 64 bits windows. The current windows installer is compiled for
>> 32 bits windows, and I haven't tested it on 64 bits so far, but it's
>> quite likely the cause of the problem.
>>
>> Is there any chance you can try it out on a 32 bits windows to confirm
>> that it works there?
>> What version of windows did you test it on?
>>
>> ** Changed in: pyexiv2
>> Status: New => Incomplete
>>
>> --
>> Windows build fails with load DLL problem
>> https://bugs.launchpad.net/bugs/587745
>> You received this bug notification because you are a direct subscriber
>> of the bug.
>>
>> Status in pyexiv2, a python binding to exiv2: Incomplete
>>
>> Bug description:
>> Trying the supplied Windows builds and I get a DLL error as follows:
>>
>> C:\Python26>python
>> Python 2.6.5 (r265:79096, Mar 19 2010, 18:02:59) [MSC v.1500 64 bit
>> (AMD64)] on
>> win32
>> Type "help", "copyright", "credits" or "license" for more information.
>> >>> import pyexiv2
>> Traceback (most recent call last):
>> File "<stdin>", line 1, in <module>
>> File "C:\Python26\lib\site-packages\pyexiv2\__init__.py", line 60, in
>> <module>
>>
>> import libexiv2python
>> ImportError: DLL load failed: %1 is not a valid Win32 application.
>>
>>
>>
>> I've tried your last two Windows builds and got the same effect.
>>
>> To unsubscribe from this bug, go to:
>> https://bugs.launchpad.net/pyexiv2/+bug/587745/+subscribe
>>
>
>

Revision history for this message
Olivier Tilloy (osomon) wrote :

Thanks for the feedback Mark.
I will consider cross-compiling pyexiv2 for windows 64 bits.

summary: - Windows build fails with load DLL problem
+ There is no 64 bits Windows build
Changed in pyexiv2:
importance: Undecided → Medium
status: Incomplete → Confirmed
Revision history for this message
Olivier Tilloy (osomon) wrote :

The exact same error is still valid with Python 2.7.1 and pyexiv2 trunk on windows 7 x64.

Revision history for this message
Olivier Tilloy (osomon) wrote :

Unfortunately the needed tool (amd64-mingw32msvc-g++) is currently not available in Ubuntu Maverick, my development platform (see bug #568028).

Revision history for this message
Andy Eichelberger (aeichelberger) wrote :

The referenced issue with Maverick appears to have a workaround now. Any chance we'll see pyexiv2 for x64? Thanks!

Revision history for this message
Raphaël BECK (leozleoz01) wrote :

The installer doesn't find python 2.7 for me : "Unable to locate Python 2.7".

I actually have python2.6 installed and not 2.7, but the requirements are python greater than or equal to 2.6 is that have changed ?
(Is it linked to the fact that win32-installer.nsi has this line !define PYTHON_MINOR "7" ?)

Platform:
Windows 7 x64
Python2.6

Thanks

Revision history for this message
Olivier Tilloy (osomon) wrote :

@Raphaël: this is unrelated to the issue this bug tracks. The latest release (0.3.0) is compiled and linked against Python 2.7, which is why the installer first ensures that it can find Python 2.7 before proceeding to install. It wouldn’t run against Python 2.6 (and even less on 64 bits). It would be possible to compile pyexiv2 against Python 2.6 if required. Can’t you upgrade to Python 2.7 instead?

robinmills (robinmills)
Changed in pyexiv2:
assignee: nobody → robinmills (robinmills)
Revision history for this message
robinmills (robinmills) wrote :

There is a build of pyexiv2 0.3.2 linked with exiv2 0.22 available from:

http://clanmills.com/files/pyexiv2-0-3-2+exiv2-0-22+python27.zip

The archive includes Windows 32bit and 64bit builds (and a Mac Universal build). To install, copy the pyexiv2-x64 directory to the python site-packages exiv2 directory. On my machine, this appears as:

 Directory of C:\Python27\Lib\site-packages\pyexiv2
2011-11-09 21:04 295,936 boost_python-vc90-mt-1_47.dll
2011-10-24 09:06 19,453 exif.py
2011-11-02 20:14 1,918,976 exiv2.dll
2011-10-24 09:06 13,174 iptc.py
2011-11-09 22:13 297,472 libexiv2python.pyd
2011-11-02 20:14 160,256 libexpat.dll
2011-10-24 09:06 1,639 main.py
2011-10-24 09:06 15,938 metadata.py
2011-10-24 09:06 2,412 preview.py
2011-10-24 09:06 25,795 utils.py
2011-10-24 09:06 18,508 xmp.py
2011-10-20 18:52 77,312 zlib1.dll
2011-10-24 09:07 3,537 __init__.py

This is the first published 64bit build of pyexiv2. I'm working with the team to have a 64bit build of pyexiv2 included in the installer. Feedback and comments are appreciated.

Revision history for this message
Olivier Tilloy (osomon) wrote :

Thanks Robin!

Mark, could you please test Robin’s build for win64 and let us know if it works for you?

Revision history for this message
Mark Mascolino (mark-mascolino) wrote : Re: [Bug 587745] Re: There is no 64 bits Windows build

So I copied the pyexiv2-x64 directory to
c:\python2\lib\site-packages\pyexiv2 and then tried to import it. This is
what I got:

Python 2.6.5 (r265:79096, Mar 19 2010, 18:02:59) [MSC v.1500 64 bit
(AMD64)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyexiv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python26\lib\site-packages\pyexiv2\__init__.py", line 60, in
<module>

    import libexiv2python
ImportError: DLL load failed: The specified module could not be found.
>>>

On Wed, Nov 16, 2011 at 1:54 AM, Olivier Tilloy <email address hidden> wrote:

> Thanks Robin!
>
> Mark, could you please test Robin’s build for win64 and let us know if
> it works for you?
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/587745
>
> Title:
> There is no 64 bits Windows build
>
> Status in pyexiv2, a python binding to exiv2:
> Confirmed
>
> Bug description:
> Trying the supplied Windows builds and I get a DLL error as follows:
>
> C:\Python26>python
> Python 2.6.5 (r265:79096, Mar 19 2010, 18:02:59) [MSC v.1500 64 bit
> (AMD64)] on
> win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import pyexiv2
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File "C:\Python26\lib\site-packages\pyexiv2\__init__.py", line 60, in
> <module>
>
> import libexiv2python
> ImportError: DLL load failed: %1 is not a valid Win32 application.
>
>
> I've tried your last two Windows builds and got the same effect.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/pyexiv2/+bug/587745/+subscriptions
>

Revision history for this message
robinmills (robinmills) wrote :

Mark

Thanks for trying this so quickly. I've built this for Python 2.7 and only tested it with Python 2.7.2. Can you try it with 2.7?

Robin

Revision history for this message
Mark Mascolino (mark-mascolino) wrote :

i don't have a copy of 2.7 x64 on this machine so I will have to get that
setup

On Wed, Nov 16, 2011 at 9:13 AM, robinmills <email address hidden> wrote:

> Mark
>
> Thanks for trying this so quickly. I've built this for Python 2.7 and
> only tested it with Python 2.7.2. Can you try it with 2.7?
>
> Robin
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/587745
>
> Title:
> There is no 64 bits Windows build
>
> Status in pyexiv2, a python binding to exiv2:
> Confirmed
>
> Bug description:
> Trying the supplied Windows builds and I get a DLL error as follows:
>
> C:\Python26>python
> Python 2.6.5 (r265:79096, Mar 19 2010, 18:02:59) [MSC v.1500 64 bit
> (AMD64)] on
> win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import pyexiv2
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File "C:\Python26\lib\site-packages\pyexiv2\__init__.py", line 60, in
> <module>
>
> import libexiv2python
> ImportError: DLL load failed: %1 is not a valid Win32 application.
>
>
> I've tried your last two Windows builds and got the same effect.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/pyexiv2/+bug/587745/+subscriptions
>

Revision history for this message
robinmills (robinmills) wrote :

I'll have a look at 2.6 after work this evening.

Revision history for this message
robinmills (robinmills) wrote :

I've build 2.6 on Windows (x86 and x64):
http://clanmills.com/files/pyexiv2-0-3-2+exiv2-0-22+python26.zip

I haven't build the Mac version (although I don't anticipate any difficulty with that if requested).

Revision history for this message
LAVERGNE (michelelavergne) wrote :

I tried to install pyexiv2 with windows 7 , 64 bits . The installer doesn't work

I got the file for windows 7 64 bits from the link given previously here ( http://clanmills.com/files/pyexiv2-0-3-2+exiv2-0-22+python27.zip )
With this file put in the site-packages directory , pyexiv2 seems works ok

I've a question about pyexiv2 :

Revision history for this message
LAVERGNE (michelelavergne) wrote :

Sorry, I 've post my comment too early ...

My question :
Is it possible to get the JPEG Comment (given in FastStone viewer for instance) , Windows Title and Windows Comment (given in the Windows7 file manager ) with this software ?

PS : My Python version is 2.7

Revision history for this message
robinmills (robinmills) wrote :

The Windows Title/comment stuff isn't exif data. Microsoft store that somewhere that's invisible and provide an API (via COM) to access that information. I've got code at home for dealing with that. I'll post it this evening from home (I'm at work in California at the moment).

Revision history for this message
robinmills (robinmills) wrote :

There's an aspect of running python on 64 bit windows that I don't think has been mentioned.

If you install 32 bit python, the installer does work and pyexiv2 does work. Windows WOW64 thunking enables 32 bit code to run on Windows/64.

If you install 64 bit python, the installer will run to completion, however pyexiv2 will fail to load at run-time. 64 bit code cannot load a 32bit DLL. For the moment, the work-around is to use one of the following downloads:

http://clanmills.com/files/pyexiv2-0-3-2+exiv2-0-22+python27.zip
http://clanmills.com/files/pyexiv2-0-3-2+exiv2-0-22+python26.zip

There is no installer at this time, however it is a single command to install:
xcopy/yesi pyexiv2-0-3-2+exiv2-0-22+python27\pyexiv2-x64 c:\Python2X\lib\site-packages\pyexiv2

The downloads from clan mills.com are engineering "work in progress". Feedback about their behavior is welcome.

Revision history for this message
robinmills (robinmills) wrote :

This comment concerns the request made by LAVERGNE (michelelavergne) to access the Microsoft Explorer meta-data. My email friend Geoff in Dunedin, NZ found this link which discusses this matter:

http://blogs.msdn.com/b/benkaras/archive/2007/01/05/choosing-your-property-api.aspx

Geoff used the article to construct some code which I attach. You'll see that the code is involved with COM and is heavy-going in C++. I believe these interfaces can accessed from Python using the win32com.client. I found this extract from an O'Reilly book:

http://oreilly.com/catalog/pythonwin32/chapter/ch12.html

In this article he is able to access properties of structured storage, and something like that's required to access the metadata.

Revision history for this message
LAVERGNE (michelelavergne) wrote :

Thanks for your quick response...

I have found the response to my question about the windows parameters and jpeg comment, by testing pyexiv2 :
All is in the actual pyexiv2 version . Perhaps this could be useful for some people ...

Here are what I got with softwares I use (windows7, exifmanager ans FastStoneViewer )

 * Exif.Image.ImageDescription : Titre windows7 & Description exifmanager

 * Exif.Image.XPComment : C o m m e n t a i r e w i n d o w s 7
 * Exif.Image.XPTitle : T i t r e w i n d o w s 7
 * Exif.Image.XPSubject : O b j e t w i n d o w s7
 * Exif.Image.XPKeywords : M o t c l e w i n d o w s7

 * Xmp.dc.title : {u'x-default': u'Titre windows7'}
 * Xmp.dc.description : {u'x-default': u'Titre windows7'}

 * Exif.Image.0x9286 : ASCII Commentaire exifmanager

 * metadata.comment : Commentaire jpeg (entré avec FastStoneViewer)
(Note : The metadata.comment has not the same syntax than the others parameters)

The Image.XP.. parameters are not given in clear but byte format
I can get the string value by using the pyexiv2.utils.undefined_to_string() command
As you can see , it seems that there are blanks between the letters of the words...
Perhaps it is'nt real blanck characters because I have problem when using these values:
I've written such Exif.Image.XPTitle parameter in the metadata.comment of a picture
 * when I read again with pyexiv2 , I get the right value (with the 'blancks' of course)
 * but I get only one letter (the first) by reading with FastStoneViewer
 * when I give a value with real blanck ('l l l l l '), FastStoneViewer understand ok and give me the right value
So, perhaps it's a fancy character between the letters ...
What do you mean about ?

Revision history for this message
Olivier Tilloy (osomon) wrote :

Windows XP specific tags are encoded using UTF-16, if I’m not mistaken (or it may be UCS-2, which is roughly equivalent).
This means that every character is coded using two bytes. For ASCII characters, only the first byte is used, and the second byte is \x00, not a white space.

Revision history for this message
LAVERGNE (michelelavergne) wrote :

Thanks for these explanations !

Taking only the characters 1 3 5 7 9 ..... of the Exif.Image.XPTitle value ( after using pyexiv2.utils.undefined_to_string() )
I can get the good value for the windows title
After writing it in metadata.comment, I can see the good value in FastStoneViewer jpeg comment

Thanks !

Revision history for this message
Olivier Tilloy (osomon) wrote :

Instead of manually extracting the odd characters of the string encoded as UTF-16, a cleaner solution is to do something like that:

    value.decode('utf-16')

For instance the value of Exif.Image.XPComment in comment #22 would be 'C\x00o\x00m\x00m\x00e\x00n\x00t\x00a\x00i\x00r\x00e\x00 \x00w\x00i\x00n\x00d\x00o\x00w\x00s\x007\x00'. If you apply .decode('utf-16') on this string, you get u'Commentaire windows7'.

Revision history for this message
Olivier Tilloy (osomon) wrote :

I just published an installer for 64 bits windows that ships Robin’s build.
Grab it at http://launchpad.net/pyexiv2/0.3.x/0.3.2/+download/pyexiv2-0.3.2-py27-amd64.exe.
Feedback welcome!

Let’s keep this bug open until the build instructions are integrated in the source tree.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.