Hi Olivier, Hi all, Ubuntu 12.04 provide all necessary for the compilation of boost with Python3 (maybe Oneiric too, I've skipped this version)
Following the same procedure as describe into the bug https://bugs.launchpad.net/pyexiv2/+bug/824440, pyexiv2 works fine with Python3 but read only. Same as with Archlinux. It seems the problem is in the data format. Unicode, ASCII, bytes ... Some examples: tag = "Exif.Photo.UserComment" val = "Soirée d'été" # <class str> ---------------------------------------------- data[tag].value = val Error: Python argument types in _ExifTag._setRawValue(_ExifTag, bytes) did not match C++ signature: _setRawValue(exiv2wrapper::ExifTag {lvalue}, std::string) ---------------------------------------------- val = unicodedata.normalize('NFKD', val).encode('ascii', 'ignore') # <class 'bytes'> data[tag].value = val Error: Python argument types in _ExifTag._setRawValue(_ExifTag, bytes) did not match C++ signature: _setRawValue(exiv2wrapper::ExifTag {lvalue}, std::string) ----------------------------------------------- data[tag].value = '{0}'.format(val) Error: Python argument types in _ExifTag._setRawValue(_ExifTag, bytes) did not match C++ signature: _setRawValue(exiv2wrapper::ExifTag {lvalue}, std::string) ----------------------------------------------- tag = 'Exif.GPSInfo.GPSLatitudeRef' latref = 'N' # <class str> Traceback (most recent call last): ... File "/home/vincent/oqapy3/metadatas.py", line 406, in modify_geotags self.datas[tag].value = latref File "/usr/lib/python3.2/dist-packages/pyexiv2/exif.py", line 198, in _set_value self.raw_value = self._convert_to_string(value) File "/usr/lib/python3.2/dist-packages/pyexiv2/exif.py", line 164, in _set_raw_value self._tag._setRawValue(value) Boost.Python.ArgumentError: Python argument types in _ExifTag._setRawValue(_ExifTag, bytes) did not match C++ signature: _setRawValue(exiv2wrapper::ExifTag {lvalue}, std::string) --------------------------------------------- tag = 'Exif.GPSInfo.GPSLatitude' val = [Rational(50, 1), Rational(49, 1), Rational(54, 1)] # <class 'list'> data[tag].value = val ... No error, great! So, may I perform other tests? feel free to ask me, I've a machine only for testing. Best regards. Vincent -- Vincent V.V. Oqapy <https://launchpad.net/oqapy> . Qarte+7 <https://launchpad.net/qarte+7> . PaQager <https://launchpad.net/paqager> _______________________________________________ Mailing list: https://launchpad.net/~pyexiv2-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~pyexiv2-developers More help : https://help.launchpad.net/ListHelp

