14
$\begingroup$

A few entwined/related questions:

Can Wolfram's Player Pro use proprietary packages?

I have searched Wolfram's site pages on Player Pro and don't see anything that provides a clear answer to this question. See:

If yes, does it work the same as in Mathematica?

To load packages automatically in Mathematica I typically use the "Applications" directory and then place an init.m package with a Get[] command in the "Kernel" directory. The following code identifies the appropriate directories:

    appDirectory = FileNameJoin[{$UserBaseDirectory, "Applications"}]
kerDirectory = FileNameJoin[{$UserBaseDirectory, "Kernel"}]

If it works differently, can someone explain how it works and what directory structure it uses?

A related question got placed last year, but as it never received any answers and I thought it might benefit from a more specific formation.

$\endgroup$

1 Answer 1

17
$\begingroup$

It basically works exactly the same as for Mathematica, but there are some subtle differences:

  • PlayerPro will not load plain text package files but only Encoded ones, see e.g. the player pro developer guidelines.
  • $BaseDirectory, $UserBaseDirectory and some other $*Directory variables will usually be different, typically you'd need to StringReplace "Mathematica" with "MathematicaPlayerPro" in their values.
  • There is no documentation center contained in PlayerPro, so you can't read the standard documentation of a package from within PlayerPro. You can instead provide a button in your GUI which opens a documentation notebook from the package/application directory.
  • There is no Palettes menu in PlayerPro, so you don't have easy access to any palettes defined in a package. You can, on the other hand provide e.g. buttons which programmatically open any such palette by filename.
  • In PlayerPro you can't edit Notebook files and that might also affect some of the programmatic ways to edit Notebook files with FrontEnd functions. Many (Most?) of those programmatic ways do work, though. I don't know of a source for documentation about what exactly works, so that's an area where one has to rely on try and error...
  • As Jagra has found the hard way, kernel initialization file Kernel/init.m seems to not be read with PlayerPro, also the Autoload directory doesn't work as on Mathematica, in combination there probably is no simple way to load packages at Kernel startup. You can, OTOH, load a package with the Initialization option of either Manipulate or DynamicModule, so for typical Player-apps with a graphical user interface that might not be a serious limitation.

I can't remember that I ever had to change anything else for even relatively advanced applications to run in PlayerPro, but other people use other features, so there could be well more things not working...

$\endgroup$
5
  • 2
    $\begingroup$ +1 to start. Do you happen to know if they have any of this documented anywhere? $\endgroup$
    – Jagra
    Commented Mar 20, 2013 at 20:57
  • 1
    $\begingroup$ @Jagra: there are the deveoper guidlines for player pro which contain some of that information. The part with $UserBaseDirectory and the documentation I found by experimenting, don't know of any reference for it... $\endgroup$ Commented Mar 21, 2013 at 22:09
  • 1
    $\begingroup$ Thanks for the reference. One might think they'd have a complete user guide. Ah well... $\endgroup$
    – Jagra
    Commented Mar 22, 2013 at 2:24
  • $\begingroup$ Is encoding needed in 10+? I'm playing with something and my player pro 10.2 loads a package, which is not encoded, properly. I'm always confused but the setup forced by mma... $\endgroup$
    – Kuba
    Commented Oct 27, 2015 at 9:14
  • $\begingroup$ hm, never tried whether it works or not, it does work with encoded packages at least :-). Have they announced/documented any changes? $\endgroup$ Commented Oct 27, 2015 at 19:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.