From 31d91f5e876222519271af4cd98ebe6498b637be Mon Sep 17 00:00:00 2001 From: xushiwei Date: Sat, 11 May 2024 05:04:02 +0800 Subject: [PATCH] move python demos to _pydemo --- README.md | 29 +++++++++++++++++++++++++++++ {_demo => _pydemo}/callpy/call.go | 0 {_demo => _pydemo}/clpy/cleval.go | 0 {_demo => _pydemo}/hellopy/hello.go | 0 py/python.go | 2 +- 5 files changed, 30 insertions(+), 1 deletion(-) rename {_demo => _pydemo}/callpy/call.go (100%) rename {_demo => _pydemo}/clpy/cleval.go (100%) rename {_demo => _pydemo}/hellopy/hello.go (100%) diff --git a/README.md b/README.md index 9ede52fc..5aed55ea 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,11 @@ go install -v ./... TODO +## Python support + +TODO + + ## Demo The `_demo` directory contains our demos (it start with `_` to prevent the `go` command from compiling it): @@ -46,13 +51,37 @@ The `_demo` directory contains our demos (it start with `_` to prevent the `go` * [qsort](_demo/qsort/qsort.go): call C function with a callback (eg. qsort) * [genints](_demo/genints/genints.go): various forms of closure usage (including C function, recv.method and anonymous function) * [llama2-c](_demo/llama2-c): inference Llama 2 (It's the first llgo AI example) + +And the `_pydemo` directory contains python related demos: + * [hellopy](_demo/hellopy/hello.go): link Python to Go and say `Hello world` * [clpy](_demo/clpy/cleval.go): compile Python code and eval. * [callpy](_demo/callpy/call.go): call Python standard library function `math.sqrt`. ### How to run demos +To run the demos in directory `_demo`: + ```sh cd # eg. cd _demo/genints llgo run . ``` + +To run the demos in directory `_pydemo`, you need to set the `LLGO_LIB_PYTHON` environment variable first. Assuming you use Python 3.12, and the `libpython3.12.so` (or `libpython3.12.dylib` or `python3.12.lib`) file is in the /foo/bar directory, then you need to set `LLGO_LIB_PYTHON` to: + +```sh +export LLGO_LIB_PYTHON=/foo/bar/python3.12 +``` + +For example, `/opt/homebrew/Frameworks/Python.framework/Versions/3.12/libpython3.12.dylib` is a typical python lib location under macOS. So we should set it like this: + +```sh +export LLGO_LIB_PYTHON=/opt/homebrew/Frameworks/Python.framework/Versions/3.12/python3.12 +``` + +Then you can run the demos in directory `_pydemo`: + +```sh +cd # eg. cd _pydemo/hellopy +llgo run . +``` diff --git a/_demo/callpy/call.go b/_pydemo/callpy/call.go similarity index 100% rename from _demo/callpy/call.go rename to _pydemo/callpy/call.go diff --git a/_demo/clpy/cleval.go b/_pydemo/clpy/cleval.go similarity index 100% rename from _demo/clpy/cleval.go rename to _pydemo/clpy/cleval.go diff --git a/_demo/hellopy/hello.go b/_pydemo/hellopy/hello.go similarity index 100% rename from _demo/hellopy/hello.go rename to _pydemo/hellopy/hello.go diff --git a/py/python.go b/py/python.go index 7140ab3b..4b9231e6 100644 --- a/py/python.go +++ b/py/python.go @@ -23,7 +23,7 @@ import ( ) const ( - LLGoPackage = "link: $LLGO_PYTHON_ROOT/python3.12" + LLGoPackage = "link: $LLGO_LIB_PYTHON" ) // -----------------------------------------------------------------------------