<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to install Python Packages manually on JMP in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/How-to-install-Python-Packages-manually-on-JMP/m-p/897736#M105780</link>
    <description>&lt;P&gt;Hello!&lt;BR /&gt;&lt;BR /&gt;Yes, sys.executable returns the path of jmp.exe instead of the Python executable which is actually located in the same directory (jmp_python.exe). But it is difficult to use it directly as some environment variables must be set before running pip.&lt;BR /&gt;&lt;BR /&gt;What you could do would be to allow JMP to generate the jpip.bat file for you. This file sets all the environment variables needed in order to the pip module of JMP-Python to work properly.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Python Create JPIP CMD();&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;After generating the jpip.bat file (must be done only once, obviously), you can use it with additional arguments in a JSL script like this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Run Program(Executable("cmd.exe"), Options({"/c", "\!"path/to/the/jpip.bat\!"", "install", "--no-index", "--find-links=\!"path/to/the/wheels\!"", "numpy", "pandas", "scipy"}), Read Function("text"));&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Note the escaped quotation marks, your paths might contain spaces.&lt;BR /&gt;&lt;BR /&gt;Alternatively, you can modify the jpip.file directly (2nd last row):&lt;/P&gt;
&lt;PRE&gt;"C:\path\to\the\jmp_python.exe" -m pip install --no-index --find-links="path\to\the\wheels" numpy pandas scipy&lt;/PRE&gt;
&lt;P&gt;Then you need to run the jpip.bat file only:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Run Program(Executable("cmd.exe"), Options({"/c", "\!"path/to/the/jpip.bat\!""}), Read Function("text"));&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 29 Aug 2025 10:13:02 GMT</pubDate>
    <dc:creator>Eki</dc:creator>
    <dc:date>2025-08-29T10:13:02Z</dc:date>
    <item>
      <title>How to install Python Packages manually on JMP</title>
      <link>https://community.jmp.com/t5/Discussions/How-to-install-Python-Packages-manually-on-JMP/m-p/897513#M105763</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a JMP add-in where I call Python (integrated into JMP, as I am using JMP 18.2.2) and I need to install Python packages (if they are not already installed).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I therefore have two questions:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- I don't have an internet connection, so I can't use pip install or jmp.utils to install the Python packages. How can I get Python packages hard-coded into the add-in in JMP and install them?&lt;/P&gt;
&lt;P&gt;- Can I see if it's already installed, and if so, avoid reinstalling it?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 28 Aug 2025 15:01:05 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/How-to-install-Python-Packages-manually-on-JMP/m-p/897513#M105763</guid>
      <dc:creator>SophieCuvillier</dc:creator>
      <dc:date>2025-08-28T15:01:05Z</dc:date>
    </item>
    <item>
      <title>Re: How to install Python Packages manually on JMP</title>
      <link>https://community.jmp.com/t5/Discussions/How-to-install-Python-Packages-manually-on-JMP/m-p/897703#M105773</link>
      <description>&lt;DIV class="x_elementToProof"&gt;&lt;SPAN data-olk-copy-source="MessageBody"&gt;Currently I have done the following:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;UL data-editing-info="{&amp;quot;applyListStyleFromLevel&amp;quot;:true}"&gt;
&lt;LI&gt;
&lt;DIV class="x_elementToProof" role="presentation"&gt;&lt;SPAN&gt;From a PC that have internet access, I have downloaded the python packages in one of my addin-folder:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="x_elementToProof"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SophieCuvillier_2-1756455654510.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/81515i5D76DD751AFA28A1/image-size/medium?v=v2&amp;amp;px=400" role="button" title="SophieCuvillier_2-1756455654510.png" alt="SophieCuvillier_2-1756455654510.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BR /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;UL data-editing-info="{&amp;quot;applyListStyleFromLevel&amp;quot;:true}"&gt;
&lt;LI&gt;
&lt;DIV class="x_elementToProof" role="presentation"&gt;&lt;SPAN&gt;Then in my JMP add-in, at start, I run this command (to install the packages without the need to internet access):&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="x_elementToProof"&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;strPathPythonLibs = &amp;nbsp;"C:\Users\Utilisateur\Documents\Sophie\JMP Addin\Python libs";
Python send(strPathPythonLibs);
Python submit( "
&amp;nbsp;
import sys, subprocess
&amp;nbsp;
subprocess.check_call([
&amp;nbsp; &amp;nbsp; sys.executable, '-m', 'pip', 'install',
&amp;nbsp; &amp;nbsp; '--no-index',
&amp;nbsp; &amp;nbsp; f'--find-links={strPathPythonLibs}',
&amp;nbsp; &amp;nbsp; 'numpy', 'pandas', 'scipy'
])
" );
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;UL data-editing-info="{&amp;quot;applyListStyleFromLevel&amp;quot;:true}"&gt;
&lt;LI&gt;
&lt;DIV class="x_elementToProof" role="presentation"&gt;But I get the message below&lt;/DIV&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="x_elementToProof"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="x_elementToProof"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SophieCuvillier_1-1756455572177.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/81513iB7DF9DA4C93B566D/image-size/medium?v=v2&amp;amp;px=400" role="button" title="SophieCuvillier_1-1756455572177.png" alt="SophieCuvillier_1-1756455572177.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV class="x_elementToProof"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="x_elementToProof"&gt;Do you know how to resolve the issue ? I know that the sys.executable should return the path of JMP python.exe but for some reason it returns the path of jmp.exe. Where is the&amp;nbsp; python.exe used by JMP?&lt;/DIV&gt;
&lt;DIV class="x_elementToProof"&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Fri, 29 Aug 2025 08:21:40 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/How-to-install-Python-Packages-manually-on-JMP/m-p/897703#M105773</guid>
      <dc:creator>SophieCuvillier</dc:creator>
      <dc:date>2025-08-29T08:21:40Z</dc:date>
    </item>
    <item>
      <title>Re: How to install Python Packages manually on JMP</title>
      <link>https://community.jmp.com/t5/Discussions/How-to-install-Python-Packages-manually-on-JMP/m-p/897736#M105780</link>
      <description>&lt;P&gt;Hello!&lt;BR /&gt;&lt;BR /&gt;Yes, sys.executable returns the path of jmp.exe instead of the Python executable which is actually located in the same directory (jmp_python.exe). But it is difficult to use it directly as some environment variables must be set before running pip.&lt;BR /&gt;&lt;BR /&gt;What you could do would be to allow JMP to generate the jpip.bat file for you. This file sets all the environment variables needed in order to the pip module of JMP-Python to work properly.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Python Create JPIP CMD();&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;After generating the jpip.bat file (must be done only once, obviously), you can use it with additional arguments in a JSL script like this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Run Program(Executable("cmd.exe"), Options({"/c", "\!"path/to/the/jpip.bat\!"", "install", "--no-index", "--find-links=\!"path/to/the/wheels\!"", "numpy", "pandas", "scipy"}), Read Function("text"));&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Note the escaped quotation marks, your paths might contain spaces.&lt;BR /&gt;&lt;BR /&gt;Alternatively, you can modify the jpip.file directly (2nd last row):&lt;/P&gt;
&lt;PRE&gt;"C:\path\to\the\jmp_python.exe" -m pip install --no-index --find-links="path\to\the\wheels" numpy pandas scipy&lt;/PRE&gt;
&lt;P&gt;Then you need to run the jpip.bat file only:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Run Program(Executable("cmd.exe"), Options({"/c", "\!"path/to/the/jpip.bat\!""}), Read Function("text"));&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 29 Aug 2025 10:13:02 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/How-to-install-Python-Packages-manually-on-JMP/m-p/897736#M105780</guid>
      <dc:creator>Eki</dc:creator>
      <dc:date>2025-08-29T10:13:02Z</dc:date>
    </item>
    <item>
      <title>Re: How to install Python Packages manually on JMP</title>
      <link>https://community.jmp.com/t5/Discussions/How-to-install-Python-Packages-manually-on-JMP/m-p/898218#M105810</link>
      <description>&lt;P&gt;Thank you very much it worked !&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 01 Sep 2025 14:48:44 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/How-to-install-Python-Packages-manually-on-JMP/m-p/898218#M105810</guid>
      <dc:creator>SophieCuvillier</dc:creator>
      <dc:date>2025-09-01T14:48:44Z</dc:date>
    </item>
  </channel>
</rss>

