move python demos to _pydemo
This commit is contained in:
29
README.md
29
README.md
@@ -37,6 +37,11 @@ go install -v ./...
|
|||||||
TODO
|
TODO
|
||||||
|
|
||||||
|
|
||||||
|
## Python support
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
|
||||||
## Demo
|
## Demo
|
||||||
|
|
||||||
The `_demo` directory contains our demos (it start with `_` to prevent the `go` command from compiling it):
|
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)
|
* [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)
|
* [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)
|
* [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`
|
* [hellopy](_demo/hellopy/hello.go): link Python to Go and say `Hello world`
|
||||||
* [clpy](_demo/clpy/cleval.go): compile Python code and eval.
|
* [clpy](_demo/clpy/cleval.go): compile Python code and eval.
|
||||||
* [callpy](_demo/callpy/call.go): call Python standard library function `math.sqrt`.
|
* [callpy](_demo/callpy/call.go): call Python standard library function `math.sqrt`.
|
||||||
|
|
||||||
### How to run demos
|
### How to run demos
|
||||||
|
|
||||||
|
To run the demos in directory `_demo`:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd <demo-directory> # eg. cd _demo/genints
|
cd <demo-directory> # eg. cd _demo/genints
|
||||||
llgo run .
|
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 <demo-directory> # eg. cd _pydemo/hellopy
|
||||||
|
llgo run .
|
||||||
|
```
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
LLGoPackage = "link: $LLGO_PYTHON_ROOT/python3.12"
|
LLGoPackage = "link: $LLGO_LIB_PYTHON"
|
||||||
)
|
)
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user