hvdwolf / pyExifToolGUI

pyExifToolGui is a python pyside graphical frontend for the excellent open source command line tool ExifTool
GNU General Public License v3.0
281 stars 48 forks source link

pyExitToolGui doesn'work with MAC OS X Yosemite #17

Closed LoBeRed closed 3 years ago

LoBeRed commented 9 years ago

I have a working exiftool on my mac, but the GUI pyExitToolGui doesn't work. What can I do to use the GUI?

rom1henry commented 9 years ago

Hi - I have a similar issue on Yosemite: Exiftool is installed and running, but when I launch pyExitToolGui, I have the message below:

exiftool is missing or incorrectly configured in Preferences!
This tool is an absolute must have!
Please set the correct location or install exiftool first.

Then there's a dialog which I'm supposed to use to locate exiftool - not sure what to select?

Thanks for help

hvdwolf commented 9 years ago

The file dialog gives you the option to select the exiftool binary from the location where you have it installed. Browse to the folder where exiftool resides and select the exiftool binary.

I have no Mac OS X anymore since about 1½ year, so I can't check myself.

rom1henry commented 9 years ago

Thanks! I had to find out how to reach /usr/local/bin from the dialog (shift + cmd +g for the record...) It works now! Cheers

tylerrrr commented 8 years ago

Hi. I am still trying to get this to work. When I try to locate exiftool through shift+cmg+g it finds the directory but pyExiftoolgui cannot install it. Can you please post instructions? Thank you.

hvdwolf commented 8 years ago

The file dialog gives you also the option to simply type the path. Say your exiftool is in your /opt/local/bin or /usr/local/bin or even in your home Users folder in something like /Users/<username>/ExifTool-x.yz (x.yz for the version) In that case you can simply type in the file dialog the path like:

/usr/local/bin/exiftool

or

/opt/local/bin/exiftool

or

/Users/<username>/ExifTool-x.yz/exiftool

(note that OS X is case sensitive: uppercase and lowercase characters are not the same)

tylerrrr commented 8 years ago

Thank you very much.

Ninerian commented 8 years ago

I also can't use pyExitToolGui. After choosing exiftool, which is the latest version (10.03), the programm quits and relaunching it, just repeats the not found process.

OS: OSX 10.11.1 Exiftool: 10.03 directly loaded and 10.01 over homebrew pyExitToolGui: Full Package

Console log

27.10.15 13:36:53,084 pyexiftoolgui[57125]: WARNING: The Gestalt selector gestaltSystemVersion is returning 10.9.1 instead of 10.11.1. This is not a bug in Gestalt -- it is a documented limitation. Use NSProcessInfo's operatingSystemVersion property to get correct system version number.
Call location:
27.10.15 13:36:53,084 pyexiftoolgui[57125]: 0   CarbonCore                          0x00007fff932a179f ___Gestalt_SystemVersion_block_invoke + 113
27.10.15 13:36:53,084 pyexiftoolgui[57125]: 1   libdispatch.dylib                   0x00007fff906923c3 _dispatch_client_callout + 8
27.10.15 13:36:53,084 pyexiftoolgui[57125]: 2   libdispatch.dylib                   0x00007fff906922bb dispatch_once_f + 67
27.10.15 13:36:53,084 pyexiftoolgui[57125]: 3   CarbonCore                          0x00007fff9322e09c _Gestalt_SystemVersion + 987
27.10.15 13:36:53,084 pyexiftoolgui[57125]: 4   CarbonCore                          0x00007fff9322d8b0 Gestalt + 139
27.10.15 13:36:53,084 pyexiftoolgui[57125]: 5   QtCore                              0x00000001058ee726 _Z41__static_initialization_and_destruction_0ii + 38
27.10.15 13:36:53,084 pyexiftoolgui[57125]: 6   ???                                 0x00007fff6a491f1b 0x0 + 140734976565019
27.10.15 13:36:57,364 pyexiftoolgui[57125]: modalSession has been exited prematurely - check for a reentrant call to endModalSession:
27.10.15 13:36:58,211 pyexiftoolgui[57125]: assertion failed: 15B42: libxpc.dylib + 79134 [3E09C275-A33B-357A-B0AB-A2DDF88EC9D5]: 0x87
27.10.15 13:36:58,212 com.apple.xpc.launchd[1]: (com.apple.xpc.launchd.domain.pid.pyexiftoolgui.57125) Could not resolve origin of domain. XPC services in this domain's bundle will not be bootstrapped: error = 107: Malformed bundle, taint = missing executable
27.10.15 13:36:58,386 pyexiftoolgui[57125]: BUG in libdispatch client: kevent[EVFILT_MEMORYSTATUS] add: "Operation not supported" - 0x2d
27.10.15 13:37:04,080 com.apple.xpc.launchd[1]: (com.apple.xpc.launchd.oneshot.0x10000027.pyexiftoolgui[57124]) Service exited with abnormal code: 255

Could it be some restrictions by El Capitan?

tonyredhead commented 8 years ago

I'm in the same predicament at Ninerian having just upgraded to El Capitan 10.11.1

Console Log

14/11/2015 10:34:18.960 AM pyexiftoolgui[9826]: WARNING: The Gestalt selector gestaltSystemVersion is returning 10.9.1 instead of 10.11.1. This is not a bug in Gestalt -- it is a documented limitation. Use NSProcessInfo's operatingSystemVersion property to get correct system version number.
Call location:
14/11/2015 10:34:18.960 AM pyexiftoolgui[9826]: 0   CarbonCore                          0x00007fff8a66c79f ___Gestalt_SystemVersion_block_invoke + 113
14/11/2015 10:34:18.960 AM pyexiftoolgui[9826]: 1   libdispatch.dylib                   0x00007fff9e7323c3 _dispatch_client_callout + 8
14/11/2015 10:34:18.960 AM pyexiftoolgui[9826]: 2   libdispatch.dylib                   0x00007fff9e7322bb dispatch_once_f + 67
14/11/2015 10:34:18.960 AM pyexiftoolgui[9826]: 3   CarbonCore                          0x00007fff8a5f909c _Gestalt_SystemVersion + 987
14/11/2015 10:34:18.960 AM pyexiftoolgui[9826]: 4   CarbonCore                          0x00007fff8a5f88b0 Gestalt + 139
14/11/2015 10:34:18.960 AM pyexiftoolgui[9826]: 5   QtCore                              0x0000000106c80726 _Z41__static_initialization_and_destruction_0ii + 38
14/11/2015 10:34:18.960 AM pyexiftoolgui[9826]: 6   ???                                 0x00007fff64384f1b 0x0 + 140734874799899
14/11/2015 10:34:21.886 AM pyexiftoolgui[9826]: modalSession has been exited prematurely - check for a reentrant call to endModalSession:
14/11/2015 10:34:21.986 AM pyexiftoolgui[9826]: assertion failed: 15B42: libxpc.dylib + 79134 [3E09C275-A33B-357A-B0AB-A2DDF88EC9D5]: 0x87
14/11/2015 10:34:21.987 AM com.apple.xpc.launchd[1]: (com.apple.xpc.launchd.domain.pid.pyexiftoolgui.9826) Could not resolve origin of domain. XPC services in this domain's bundle will not be bootstrapped: error = 107: Malformed bundle, taint = missing executable
14/11/2015 10:34:22.083 AM pyexiftoolgui[9826]: BUG in libdispatch client: kevent[EVFILT_MEMORYSTATUS] add: "Operation not supported" - 0x2d
14/11/2015 10:34:25.355 AM com.apple.xpc.launchd[1]: (com.apple.xpc.launchd.oneshot.0x10000077.pyexiftoolgui[9825]) Service exited with abnormal code: 255
batchku commented 8 years ago

i also had the same issue as tonyredhead and ninerian; i pointed pyExifToolGui towards the exiftool in /usr/local/bin and then the app crashes.

i resinstalled exiftool with homebrew, and this time also forced the linke

To force the link and overwrite all conflicting files: brew link --overwrite exiftool

now pyExifToolGui starts fine.

hvdwolf commented 8 years ago

Thanks for sharing. I don't have a Mac anymore so I can't test it myself.

kencherasaro commented 8 years ago

I am having the same issue. Running 10.10.5 here. Originally I had the latest exiftool (directly downloaded) but removed and installed with home-brew and did the force link and overwrite all conflicting files. Not sure what else to try. Can the path be manually edited in the config?

tomeez commented 8 years ago

The same here. If nobody will fix this, this program is useless now. I will try full perl version of exiftool without installing and will see if it works then.

EDIT: No.. it is not a solution.

tonyredhead commented 8 years ago

I use to use the tools to add metadata to my 360˚ panoramas before publishing to Google Maps. I still use ExifTool but via the Terminal. I've created a tutorial on how to use ExifTool for Google publishing at Google Map Photospheres - Adding MetaData on Mac using ExifTool & Terminal (http://tonyredhead.com/google-tips/exiftool-terminal-mac).

dbollema commented 8 years ago

Go to /Users//.pyexiftoolgui and open config.cfg with your preferred texteditor. Change the line "alternate_exiftool = False" to "alternate_exiftool = True". Save the file and start the pyexiftoolgui.app again. Point to where exiftool is, probably in /usr/local/bin and the app will start.

kencherasaro commented 8 years ago

Right on @dbollema. That works! Thank you very much.

hvdwolf commented 8 years ago

Thanks for sharing this work-around. As mentioned: i don't have a mac anymore and can't get my hands on one in the coming weeks.

This work-around however should be possible from within pyExiftoolgui. In the preferences screen you should be able to select "alternative exiftool" and point it to a version of your choice. Doesn't that work?

tonyredhead commented 8 years ago

I'm having a bit of trouble locating the .pyexiftoolgui config.cfg file. Can you point me in the right direction? I've tried going to /Users// .pyexiftoolgui using the "Go to the folder" window but it says the folder can't be found and I couldn't find it using a search in the Terminal.

On 29 January 2016 at 23:46, dbollema notifications@github.com wrote:

Go to /Users//.pyexiftoolgui and open config.cfg with your preferred texteditor. Change the line "alternate_exiftool = False" to "alternate_exiftool = True". Save the file and start the pyexiftoolgui.app again. Point to where exiftool is, probably in /usr/local/bin and the app will start.

— Reply to this email directly or view it on GitHub https://github.com/hvdwolf/pyExifToolGUI/issues/17#issuecomment-176749202 .

e. tony tony@redsquare.com@tonyredhead.com m.+61 438 501002 skype: tonyredhead twitter: tonyredhead web: www.tonyredhead.com

hvdwolf commented 8 years ago

It is in your user directory and using a sturcture common under linux/unix/OSX.

So in /Users/ there is a hidden folder .pyexiftoolgui (note the dot in front of it). In that hidden folder you will find config.xml and lensddb.xml (in case you want to configure specific lenses not recognised in exif). Modify the config.xml as described above.

hvdwolf commented 8 years ago

Now I understand why the first hint by dbollema "seemed" incorrect. The makrup language of githubis corruptin strings. I wanted to type: /Users/your_username, so completely /Users/your_username/.pyexiftoolgui

tonyredhead commented 8 years ago

Thanks for that, amazing how a little bit of info opens up a whole new world. All good and working now thanks to you and @bdollema

On 30 January 2016 at 18:40, hvdwolf notifications@github.com wrote:

It is in your user directory and using a sturcture common under linux/unix/OSX.

So in /Users/ there is a hidden folder .pyexiftoolgui (note the dot in front of it). In that hidden folder you will find config.xml and lensddb.xml (in case you want to configure specific lenses not recognised in exif). Modify the config.xml as described above.

— Reply to this email directly or view it on GitHub https://github.com/hvdwolf/pyExifToolGUI/issues/17#issuecomment-177097807 .

e. tony tony@redsquare.com@tonyredhead.com m.+61 438 501002 skype: tonyredhead twitter: tonyredhead web: www.tonyredhead.com

tonyredhead commented 8 years ago

For my own benefit and for anyone else who may be unfamiliar with the workings of hidden files, the terminal screen I've created a tutorial for Mac users on how to use the fix described here to enable the link between pyExifToolGui and ExifTool on El Capitan. Thanks to those who helped me resolve the issue. The tutorial can be found at http://tonyredhead.com/google-tips/pyexiftool-exiftool-linking-issue

On 31 January 2016 at 23:58, Tony Redhead tony@tonyredhead.com wrote:

Thanks for that, amazing how a little bit of info opens up a whole new world. All good and working now thanks to you and @bdollema

On 30 January 2016 at 18:40, hvdwolf notifications@github.com wrote:

It is in your user directory and using a sturcture common under linux/unix/OSX.

So in /Users/ there is a hidden folder .pyexiftoolgui (note the dot in front of it). In that hidden folder you will find config.xml and lensddb.xml (in case you want to configure specific lenses not recognised in exif). Modify the config.xml as described above.

— Reply to this email directly or view it on GitHub https://github.com/hvdwolf/pyExifToolGUI/issues/17#issuecomment-177097807 .

e. tony tony@redsquare.com@tonyredhead.com m.+61 438 501002 skype: tonyredhead twitter: tonyredhead web: www.tonyredhead.com

e. tony tony@redsquare.com@tonyredhead.com m.+61 438 501002 skype: tonyredhead twitter: tonyredhead web: www.tonyredhead.com

hvdwolf commented 8 years ago

I got my hands on an old macbookpro of 2008 and after some tinkering with damaged memory modules and more then 2½ hours of upgrading to El Capitan I now see what the problem is. I will see if I can think of something "intelligent" to overcome the El Capitan's builtin restrictions like doing a pre-search for logical locations like /usr/local/bin (Phil Harvey's installer) /opt/local/bin (macports), etcetera. and let a user select one of them. Or something alike. Or give a download action from pyexiftoolgui to Phil Harvey's download page to facilitate that a little.

AirGuitarGenius commented 8 years ago

Thanks @dbollema! You're doing God's work.

tomeez commented 8 years ago

@hvdwolf, thank you!! After all try, still can't make it work (tried all of the solutions above :( ). So I'm waiting for Your fresh new version :+1:

RiotNrrrd commented 8 years ago

"Hi, long-time listener, first-time caller ..."

Just wanted to add my 2 (US) cents.

I was happily using ExifTool 9.78 and pyExifToolGUI 0.5 on Yosemite 10.10.5 and then I upgraded ExifTool to 10.15 and it broke pyExifToolGUI, of course.

I ran the binary inside the .app bundle directly and got

% /Applications/pyexiftoolgui.app/Contents/MacOS/pyexiftoolgui 

Program start: We are on python 2.7.3 (v2.7.3:70274d53c1dd, Apr  9 2012, 20:52:43) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
create arguments file(s) from selected image(s)
create arguments file(s) from selected image(s)
/Users/riotnrrrd
/Users/riotnrrrd/.pyexiftoolgui/config.cfg
reading config.cfg
Traceback (most recent call last):
  File "<string>", line 624, in <module>
  File "<string>", line 200, in __init__
  File "/Users/Shared/development/python_related/pyside/pyExifToolGUI-0.5/MacOSX/build/pyi.darwin/pyexiftoolgui/out00-PYZ.pyz/petgfunctions", line 152, in tool_check
  File "/Users/Shared/development/python_related/pyside/pyExifToolGUI-0.5/MacOSX/build/pyi.darwin/pyexiftoolgui/out00-PYZ.pyz/petgfunctions", line 86, in exiftool_version_level_text
ValueError: invalid literal for float(): 10.15 [Warning: Library version is 9.78]

I thought that was interesting because the old 9.78 binary was in /usr/bin/exiftool and the new 10.15 binary is in /usr/local/bin/exiftool.

I made the two changes to ~/.pyexiftoolgui/config.cfg but it still doesn't come up. (Not deterministically, anyway.)

% head -3 ~/.pyexiftoolgui/config.cfg
[preferences]
alternate_exiftool = True
exiftooloption = /usr/local/bin/exiftool

% /Applications/pyexiftoolgui.app/Contents/MacOS/pyexiftoolgui

Program start: We are on python 2.7.3 (v2.7.3:70274d53c1dd, Apr  9 2012, 20:52:43) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
create arguments file(s) from selected image(s)
create arguments file(s) from selected image(s)
/Users/riotnrrrd
/Users/riotnrrrd/.pyexiftoolgui/config.cfg
reading config.cfg
Traceback (most recent call last):
  File "<string>", line 624, in <module>
  File "<string>", line 200, in __init__
  File "/Users/Shared/development/python_related/pyside/pyExifToolGUI-0.5/MacOSX/build/pyi.darwin/pyexiftoolgui/out00-PYZ.pyz/petgfunctions", line 152, in tool_check
  File "/Users/Shared/development/python_related/pyside/pyExifToolGUI-0.5/MacOSX/build/pyi.darwin/pyexiftoolgui/out00-PYZ.pyz/petgfunctions", line 86, in exiftool_version_level_text
ValueError: could not convert string to float: 

I downloaded a binary .dmg of pyExifToolGUI so there is no "petgfunctions.py" file to diddle.

When it quits I see this in the system logs:

com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.pid.pyexiftoolgui.31562): Could not resolve origin of domain. XPC services in this domain's bundle will not be bootstrapped: error = 107: Malformed bundle, taint = missing executable

What I'm finding is that it comes up (and stays up) about once for every 4 to 6 or 7 times I try to open it. Very odd!

The

Traceback (most recent call last):
  File "<string>", line 624, in <module>
  File "<string>", line 200, in __init__
  File "/Users/Shared/development/python_related/pyside/pyExifToolGUI-0.5/MacOSX/build/pyi.darwin/pyexiftoolgui/out00-PYZ.pyz/petgfunctions", line 152, in tool_check
  File "/Users/Shared/development/python_related/pyside/pyExifToolGUI-0.5/MacOSX/build/pyi.darwin/pyexiftoolgui/out00-PYZ.pyz/petgfunctions", line 86, in exiftool_version_level_text
ValueError: could not convert string to float: 

error messages only come out on the attempts that fail, obviously. I have no idea why it coming up is so non-deterministic.

viewty commented 8 years ago

Having exactly the same problem as Riot above. Also tried previous suggestion reinstalled exiftool with brew, no progress.

mori2k12bln commented 8 years ago

Thanks to all for this great help.

esbekae commented 7 years ago

I know this is old, but for anyone still having this problem, the following solved it for me (on MacOS Sierra). Change the following lines in the above referenced config.cfg file:

Change line "alternate_exiftool = True" to "alternate_exiftool = False"

Also change line "exiftooloption = exiftool" to "exiftooloption = /usr/local/bin/exiftool"

Hope this helps.

bagong commented 5 years ago

Editing the config-file doesn't do it for me on MacOS Mojave 10.14.6. I also get the "could not convert string to float" error message. Most puzzling, the return text from starting pyexiftoolgui from the command line claims operating in folders (/Users/Shared/development/python_related/...) that do not exist (any more - they refer to an ancient placement of the OSX development system, if I am not mistaken. Maybe equally ancient Qt4 makes assumptions that aren't valid any more?):

/Applications/pyexiftoolgui.app/Contents/MacOS/pyexiftoolgui

Program start: We are on python 2.7.3 (v2.7.3:70274d53c1dd, Apr  9 2012, 20:52:43)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
create arguments file(s) from selected image(s)
create arguments file(s) from selected image(s)
/Users/rainer
/Users/rainer/.pyexiftoolgui/config.cfg
reading config.cfg
Traceback (most recent call last):
  File "<string>", line 624, in <module>
  File "<string>", line 200, in __init__
  File "/Users/Shared/development/python_related/pyside/pyExifToolGUI-0.5/MacOSX/build/pyi.darwin/pyexiftoolgui/out00-PYZ.pyz/petgfunctions", line 152, in tool_check
  File "/Users/Shared/development/python_related/pyside/pyExifToolGUI-0.5/MacOSX/build/pyi.darwin/pyexiftoolgui/out00-PYZ.pyz/petgfunctions", line 86, in exiftool_version_level_text
ValueError: could not convert string to float:

Side remark: I do have Qt5 installed on my system, and some of it's components are found in the path. Might there be a conflict? I remember a few years ago the packetmanager made sure, those two major-versions of Qt could not get mixed up, and Qt stood for Qt4 while Qt5 was addressed explicitly. But since Qt4 has virtually disappeared, they have given up that precaution.