1"use strict";(globalThis.webpackChunkdocumentation=globalThis.webpackChunkdocumentation||[]).push([[1759],{2798(e,n,t){t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"tutorials/install_as_python_packages","title":"Run OPAL as Python Packages","description":"CLI execution","source":"@site/docs/tutorials/install_as_python_packages.mdx","sourceDirName":"tutorials","slug":"/tutorials/install_as_python_packages","permalink":"/tutorials/install_as_python_packages","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"sidebar_position":5,"title":"Run OPAL as Python Packages"},"sidebar":"opalSidebar","previous":{"title":"Healthcheck Policy","permalink":"/tutorials/healthcheck_policy_and_update_callbacks"},"next":{"title":"Run OPAL with Kafka","permalink":"/tutorials/run_opal_with_kafka"}}');var i=t(1684),l=t(506);const a={sidebar_position:5,title:"Run OPAL as Python Packages"},r="Run OPAL as Python packages / CLI utilities",o={},c=[{value:"CLI execution",id:"cli-execution",level:2},{value:"Server",id:"server",level:3},{value:"Client",id:"client",level:3}];function h(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"run-opal-as-python-packages--cli-utilities",children:"Run OPAL as Python packages / CLI utilities"})}),"\n",(0,i.jsx)(n.h2,{id:"cli-execution",children:"CLI execution"}),"\n",(0,i.jsxs)(n.p,{children:["Python ",(0,i.jsx)(n.strong,{children:"3.10 to 3.13"})," is required for ",(0,i.jsx)(n.code,{children:"opal-client"})," (and ",(0,i.jsx)(n.code,{children:"opal-common"}),"). ",(0,i.jsx)(n.code,{children:"opal-server"})," requires ",(0,i.jsx)(n.strong,{children:"3.10 to 3.12"}),": its pinned ",(0,i.jsx)(n.code,{children:"pygit2"})," ships no Python 3.13 wheel yet. Note that on Python 3.13 ",(0,i.jsx)(n.code,{children:"pip install opal-server"})," does not fail - pip silently picks the newest release whose metadata admits 3.13, which is the old 0.9.6 - so run the server on 3.12 or lower."]}),"\n",(0,i.jsx)(n.h3,{id:"server",children:"Server"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["install","\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-sh",children:"pip install opal-server\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["run","\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-sh",children:"# get CLI help\nopal-server --help\n# run server as daemon\nopal-server run\n"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"client",children:"Client"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["install","\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pip install opal-client\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["run","\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-sh",children:"# get CLI help\nopal-client --help\n# run the client as a daemon\nopal-client run\n"})}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},506(e,n,t){t.d(n,{R:()=>a,x:()=>r});var s=t(2888);const i={},l=s.createContext(i);function a(e){const n=s.useContext(l);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.