# Procedure for installing python libraries from source

**URL:** <https://forum.inductiveautomation.com/t/procedure-for-installing-python-libraries-from-source/26022>\
**Category:** Ignition\
**Created:** [June 21, 2019, 6:07pm UTC](https://forum.inductiveautomation.com/t/procedure-for-installing-python-libraries-from-source/26022 "2019-06-21T18:07:46Z")\
**Posts on this page:** 1\
**Showing post:** 16

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [July 27, 2021, 4:00pm UTC](https://forum.inductiveautomation.com/t/procedure-for-installing-python-libraries-from-source/26022/16 "2021-07-27T16:00:15Z")

</div>

Oh, right - `system.util.execute` is a 'fire-and-forget', it doesn't give you access to standard output. Try adapting this:

```python
from java.lang import ProcessBuilder, String

pb = ProcessBuilder([r"C:\Users\pgriffith\AppData\Local\Microsoft\WindowsApps\python3.exe", r"C:\Users\pgriffith\Downloads\test.py"])
process = pb.start()
output = String(process.getInputStream().readAllBytes())

print output

```

# (Note: This blocks until the process completes waiting on the input stream. It may or may not _ever_ complete, depending on what you're running, which could block a thread forever. Be careful).

---

_[View the full topic](https://forum.inductiveautomation.com/t/procedure-for-installing-python-libraries-from-source/26022)._
