Calling Python from bash: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 14: Line 14:
<font size=-1>
<font size=-1>
  .
  .
├─ requirements.txt
  ├─ src
  ├─ src
  ├─ tests
  ├─ tests
  └─ venv
├─ venv
├─ requirements.txt
  └─ <wrapper-bash-script>
</font>
</font>
<font color=darkkhaki>TODO: reconcile with [[Python Project Layout]]</font>.
<font color=darkkhaki>TODO: reconcile with [[Python Project Layout]]</font>.



Revision as of 17:55, 2 May 2023

Internal

Overview

This article summarizes a series of aspects related to invoking Python program from bash.

Running a Python Program with a Bash Wrapper

Check out these links for the meaning of standalone Python program and Python script.

Python Source Code and Tests Maintained within the Project Structure

.
├─ src
├─ tests
├─ venv
├─ requirements.txt
└─ <wrapper-bash-script>

TODO: reconcile with Python Project Layout.

Only Externally Published Packages

Using the Interpreter from the a Virtual Environment

TODO

If you want to use the interpreter from a specific virtual environment instead of the interpreter found in PATH, explicitly use the path to the binary from the virtual environment directory:

$(dirname $0)/venv/bin/python ...

Bash Wrapper that Bootstraps a Virtual Environment

function init_venv() {
  [[ -d $(dirname $)/venv ]] && return 0
  info "initializing venv ..."
  python3 --version 1>/dev/null 2>&1 || fail "python3 not in PATH"
  python3 -m venv "$(dirname $)/venv"
}

Also see:

Python Virtual Environment

Inline Python Code

Use bash here-doc:

  python3 <<EOF
print('blah')
EOF

Also see:

Python Script

Bash to Python Function Mapping

Bash to Python Function Mapping