<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>Currently, I am developing a C++ GUI application using the Qt framework with OpenGL. Typically this application is driven by user mouse/keyboard input. However, we have recently built a python interface using PyQt so users can drive the application with
simple python scripts. This means that we have an embedded python within our C++ application, and whenever a user loads in a python script, that script imports another script which makes PyQt calls to access certain Qt C++ methods in the application. </div>
<div><br>
</div>
<div>All of this functionality works in my development environment, but now I would like to deploy my application without requiring users to have PyQt since they will not need to use it directly within their scripts. Ultimately I would like to deploy the application
on Mac, Windows and Linux environments. Since I am completely new to python deployment, I did some reading and it seems like I need to include the following in my deployment:</div>
<ol>
<li>Python interpreter</li><li>Python standard libraries – Ideally, we want users to have access to all of the standard libraries modules in case they want to do complex python programming within their scripts. </li><li>PyQt </li></ol>
<div>As a note, right now, I dynamically link in Qt libraries to my application and include those DLLs within the application bundle. </div>
<div><br>
</div>
<div>So now for my questions:</div>
<ol>
<li>I read through the pyqtdeploy documentation and it looks like this tool has the capability to statically build all three of the dependencies listed above. However, that tool seems geared towards making complete application binaries. In my case, I would
simply want these statically built, and then I would go about linking the dependencies to my application. Would it be feasible to use the pyqtdeploy tool to accomplish my objective? </li><li>I don’t completely understand the implications of statically building the python interpreter on Windows. It sounds like if I build python statically, I won’t be able to dynamically import C/C++ extension modules. Since I want to include most if not all
of the python standard libraries, and the standard library includes C extension modules, then will I have to use a dynamic build of Python on windows? </li><li>Let’s say I did not want to build PyQt statically, but instead wanted to include it as a set of dynamic libraries. When I installed PyQt, it built .so files for each Qt module (QtGui, QtCore, etc.), however, those libraries have Qt dependencies that are
dependent on the location of the Qt C++ libraries on my machine. How can I remove the dependencies in those .so files so that they point at a relative path, or is that even possible? </li></ol>
<div>Thanks in advance for any help!</div>
<div><br>
</div>
<div>Regards,</div>
<div>
<div><span style="font-family: Calibri; ">
<hr align="center" size=""3"" width=""95%"">
</span></div>
<div><span style="font-family: Calibri; ">Eric Ferguson</span></div>
<div><span style="font-family: Calibri; ">NASA/Jet Propulsion Laboratory</span></div>
<div><span style="font-family: Calibri; ">Mission Operations Engineer (397B)</span></div>
<div><span style="font-family: Calibri; ">818.634.1928</span></div>
<div><span style="font-family: Calibri; "><br>
</span></div>
<div><span style="font-family: Calibri; ">"</span>It’s human nature to stretch, to go, to see, to understand. Exploration is not a choice, really; it’s an imperative." - Michael Collins</div>
</div>
</body>
</html>