cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Try the Materials Informatics Toolkit, which is designed to easily handle SMILES data. This and other helpful add-ins are available in the JMP® Marketplace
Choose Language Hide Translation Bar
hardner
Level VI

JMP 14 Python abilities - working? I'm confused

I'm trying to use the new abilities in JMP 14 to run python and it's not working.  Basically not finding my python install I think though in some circumstances it just crashes. 

 

I saw another discussion  saying there were issues with that in 14.1 and suggesting a workaround about setting environment variables and using Use Python Version("3.6") as an argument to Python Init()   (both of which I tried unsuccessfully).

 

Then I saw in release notes of 14.2 more about this, including a different name for relevant enviroment variable...

https://www.jmp.com/support/help/14-2/how-jmp-finds-python-on-windows.shtml

 

So, I went to upgrade from 14.1 and saw there is now 14.3 and got that. when I try the environment variable instructions from the 14.2 post I get a message saying that is deprecated and now it should be JMP_PYTHON_MODULE_PATH.  So I tried that, I think with a valid path to the right file, using same format from the 14.2 post,  but still not working.  Occured to me to try this in my JMP15 early adopter version as well and got same results, same message that the environment variable should be called JMP_PYTHON_MODULE_PATH.

 

In all cases (14.1, 14.3, 15 early adopter,  various versions of environment variables)  if I have no argument in Python Init(),  JMP crashes right away on that line.  If I have the UsePythonVersion("3.6") in there it comes back with an error saying it can't find Python at all..

 

An installation of Python cannot be found on this system. JMP Python support requires Python version 3.0 or higher. in access or evaluation of 'Python Init' , Python Init/*###*/(Use Python Version( "3.6" ))

 

Is anyone using this successfully?  If so are you putting something inside Python Init()? 

or if you used setting an environment variable what is it called and what does it look like?  Any further troubleshooting advice?

 

Here's what my latest attempt at environment variable looks like... is this not the right format? (the earlier post looked like environment variable had curly brackets and double quotes like JMP wanted to see is as a JSL list format but this looks like what the 4.2 post is saying to do and other format didn't work for me either...  A python36.dll file really does seem to be in this location... env variable issue.png

 

Not sure if I'm having a freak problem specific to my system that I need tech support on or whether I just don't get the latest verison of how this is supposed to work.

31 REPLIES 31
ChrisHilton
Level II

Re: JMP 14 Python abilities - working? I'm confused

I know this is a bit late of a response but this topic needs to be edited and updated for newer versions of JMP and Anaconda.  Please note I was successful in integrating python 3.8 with JMP 16 on 8/24/2021.

 

In direct contradiction to the "Solution" posted in this thread, DO NOT change any Environmental variables AT ALL. 

DO. 

NOT. 

This "Solution" caused me to fail in my integration and development for several weeks.  After installing JMP or updating JMP you should install a fresh version of Anaconda (Anaconda Navigator can be used) and be sure that your Base (root) Environment in Anaconda is at least 3.8.3.  I have also tested with success on 3.8.8. 

 

You can verify your pathing and installation by doing the following:

  • Navigate to C:\Program Files\SAS\JMP\<version>\ (if you don't see it here check:  C:\Program Files (x86)\SAS\JMP\<version>\)
  • Double-click on InstallChecker.exe (It might just say Install Checker)
  • After the report is displayed, choose "Open in Browser"

 

You should then see an XML file and at the end you should see the following:

 

-<category name="Python Integration">

<item name="JMP_LIB_PYTHON_PATH" value="<Not Set>"/>

<item name="JMP_PYTHON_MODULE_PATH" value="<Not Set>"/>

<item name="PYTHONHOME" value="<Not Set>"/>

<item name="PYTHONPATH" value="<Not Set>"/>

<item name="PYTHONINSTALLPATH" value="<Not Set>"/>

<item name="HKCU\SOFTWARE\Python\PythonCore" value="Key Not Found"/>

<item name="HKLM\SOFTWARE\Python\PythonCore" value="3.8\ Help\ Main Python Documentation\ Main Python Documentation: D:\Anaconda\Doc\python383.chm InstallPath\ (Default): D:\Anaconda InstallGroup\ (Default): Python 3.8 Modules\ (Default): PythonPath\ (Default): D:\Anaconda\Lib;D:\Anaconda\DLLs " pre="true"/>

 

In my case the integration was successful after I changed the Environmental Variables to:

<item name="JMP_LIB_PYTHON_PATH" value="<Not Set>"/>

<item name="JMP_PYTHON_MODULE_PATH" value="<Not Set>"/>

 

I hope this helps and I would strongly suggest the solution on this thread be removed as it simply doesn't work.

Re: JMP 14 Python abilities - working? I'm confused

Using the environment variables was never the preferred route.  The JSL Script parameters to Python Init() or Python Connect()  were always 'supposed' to be the definitive values.  All of the parameter are optional, but specifying path to the python3x.dll and as a last resort adding in the sys.path should fully specify the Python.  The Python Integration has significantly improved the python detection since JMP 14.  At this point use of the Environment variables is likely counter productive and should not be used, ( unless you have time to fiddle with knobs and all else fails, it's an alternate code path).  In JMP 16.1 and newer the JSL script parameters 'should' override anything else...