Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

Not finding images in the file pool - could this be due to packaging / app virtualisation?

Hi all,

I've run in to problems with Opensesame not finding images in the filepool - and hence experiments not running.
Whilst the experiments run fine on PC's for which I have installed Opensesame myself, it is lab PC's which are showing this error. These PC's are using a 'packaged' version of Opensesame using Microsoft Application Virtualisation (APP-V) which is done by out central IT department :s

The strange thing is that all the files are in the file pool, and when I create a new experiment, put an image in the file pool, then put it in a sketchpad object, it shows me the image. It's just, when I select the image, it doesn't appear - instead I get an error message along the lines of "image pic.jpg is variably defined or unknown - using fallback image".

Unfortunately, there is no way that the program can be deployed in the lab other than through IT services packaging it through APP-V :'(

Does anyone have any thoughts on this, or ideas of how I might remedy the situtation?

Thanks in andvance,

Neon

Comments

  • Apologies - I should have also mentioned, the version of Opensesame is 3.03, running on PC's running windows 8.1.

  • Hi neon,

    I don't really get your distinction between "putting an image in the sketchpad" and "selecting an image" . However, I don't think this problem is unsolvable. Could you provide more information on how you call the images in the sketchpad? You can also upload the experiment with the files (or a subset of files if it is too big).

    Eduard

  • Hi Neon,

    Is it only a problem in the GUI, or do the images also fail to appear when you run the experiment? And does the file pool otherwise work as expected, in the sense that you can copy files to it, open it in a file manager, rename files, remove files, etc.?

    What output do you see if you add the following to an inline_script and run the experiment? It should print out the names of all files in the file pool, followed by the full path to these files (some temporary folder).

    for basename in pool:
        print(u'Name: %s, full path: %s' % (basename, pool[basename]))
    

    Cheers,
    Sebastiaan

    There's much bigger issues in the world, I know. But I first have to take care of the world I know.
    cogsci.nl/smathot

  • Hi Sebastiaan and Eduard,

    Many thanks for your replies. Firstly, I realised that I was not very clear in my original post. When I said " [...] when I create a new experiment, put an image in the file pool, then put it in a sketchpad object, it shows me the image" what I meant was that the dialogue box appears, showing the filenames of the files in the filepool. However, when selected, the images never actually appears in Opensesame at all - I get the "image X.jpg is variably defined or unknown - using fallback image" message in the GUI.

    @eduard - the image is called in the sketchpad simply by clicking on the 'add image' tool, which brings up the filepool dialogue box, showing the files in the pool. It completely straightforward, not defined in a variable etc.

    @sebastiaan - the problem occurs both in the GUI and when running the experiment - the experiment immediately terminates stating that it was successful. The filepool does indeed work otherwise as expected; I can open it in a file manager, copy/delete files and all other normal file operations.

    The results of printing the filename as per sebastiaan's inline script is as follows.

    Starting experiment as ExperimentProcess-4
    Expyriment (Python 2.7.10)
    Main file: C:\ProgramData\App-V\574A1F08-2EB0-4B6A-80DD-C6F107EC7DEB\D435BE81-73C0-4CF5-> >9925-E86F8928C124\Root\VFS\ProgramFilesX86\OpenSesame\opensesame.exe (6a8b7f)
    openexp.sampler._legacy.init_sound(): sampling freq = 48000, buffer size = 1024
    openexp.sampler._legacy.init_sound(): mixer already initialized, closing
    experiment.run(): experiment started at Wed Nov 09 11:32:36 2016
    Name:images.jpg , full >path:c:\users\id121943\appdata\local\temp\tmp30oo5z.opensesame_pool\images.jpg
    experiment.run(): experiment finished at Wed Nov 09 11:33:00 2016
    done!

    Note that the above does use the attached Opensesame file, but the sketchpad item 'Welcome_1' is in the 'unused items', thus not called.

    When I run the experiment exactly as attached (with 'Welcome_1' between the other welcome messages), the experiment terminates immediately, with the following:

    Starting experiment as ExperimentProcess-5
    Expyriment (Python 2.7.10)
    Main file: C:\ProgramData\App-V\574A1F08-2EB0-4B6A-80DD-C6F107EC7DEB\D435BE81-73C0-4CF5->9925-E86F8928C124\Root\VFS\ProgramFilesX86\OpenSesame\opensesame.exe (6a8b7f)
    openexp.sampler._legacy.init_sound(): sampling freq = 48000, buffer size = 1024
    openexp.sampler._legacy.init_sound(): mixer already initialized, closing
    experiment.run(): experiment started at Wed Nov 09 11:34:37 2016

    I see that it appears to terminate even before the inline script is run, despite the inline being before anything else.

    Any idea what's going on, guys???

    Thanks so much in advance,

    Neon

    example attached

  • Hi Neon,

    This is quite odd. Here's my take on this.

    In the GUI, you get the question mark if the file that you selected doesn't exist. However, the fact that you were able to select the file in the first place of course means that it does exist. In other words, in different contexts Python appears to have a different opinion about the existence, or not, of the image file. This could have something to do with the virtualisation, but I cannot say for sure.

    When running the experiment with an image, it seems that Python crashes altogether (so not a crash in the Python script, but the Python interpreter itself crashes). OpenSesame cannot (yet) distinguish this
    from when an experiment stops successfully. Such a crash can happen for many reasons, but it's always a bug somewhere in the underlying C libraries; and again, it may be linked to the virtualisation.

    So basically I don't know.

    What you could try is to create a folder called __pool__. This folder has to be in the same folder as your experiment file. Then you put your image in the __pool__ folder, and OpenSesame will treat this folder as though it is your file pool. Does that make sense? And does it work?

    Cheers,
    Sebastiaan

    There's much bigger issues in the world, I know. But I first have to take care of the world I know.
    cogsci.nl/smathot

  • edited November 2016

    Hi Sebastiaan,

    Thanks for your reply and apologies for the delay in being able to look in to this further.
    Interestingly, when I tried adding a folder called __pool__ it behaved exactly the same as with the default file pool; I was able to 'select' the image in the GUI to try to add it to a sketchpad, but got the same error message etc.

    Also, I note different behaviour when using different back-ends. Psycho and Expyriment behave the same (no error reported), however pygame does report an error (namely that the image can't be found).

    I can't remember whether things worked before our IT department changed things over to roaming profiles, and I wonder whether this could have caused an issue. I'll contact the IT department, but to be honest, this is usually a last resort and doesn't yield much.

    Any other thoughts or things to try very much appreciated.

    Best wishes,

    Neale

  • PS. Apologies - In my comment above, I did mean to type 'pool' as you had, with two leading and trailing underscores, but I just noticed that has acted as markup as I wasn't concentrating :D

Sign In or Register to comment.