Skip to content

Commit 3a4f65e

Browse files
author
Christopher Doris
committed
docs
1 parent 73bc4ab commit 3a4f65e

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

docs/src/pycall.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,5 @@ The existing package [`PyCall`](https://github.com/JuliaPy/PyCall.jl) is another
88
- **Building.** `PyCall` locates libpython in its build step, so that it is a `const` in the module code. This makes `ccall`s and the like straightforward. `Python` does this at run-time, which slightly complicates the code (although it is abstracted away) but means that the module does not need to be rebulit for different Python versions.
99
- **Default Python.** By default `PyCall` uses the version of Python in `conda` and will silently install `miniconda` for you if it doesn't exist. `Python` by default simply uses the version of Python in the PATH. Both are customizable through environment variables.
1010
- **Python modules.** `PyCall` has a companion Python module `julia` for calling Julia from Python. So does `Python`. Both of them use `PyCall`/`Python` under the hood on the Julia side. The `PyCall` one is itself about as complex in implementation as `PyCall`. The `Python` one is about 50 lines of code (essentially just finding and loading libjulia and the Python module) and provides a single simple entrypoint: the julia `Main` module.
11+
- **Compatability.** `PyCall` supports Julia 0.7+ and Python 2.7+, whereas `Python` supports Julia 1.0+ and Python 3.5+. `PyCall` requires `numpy` to be installed, `Python` doesn't (it provides the same fast array access through the buffer protocol and array interface).
12+
- **Startup time.** `Python` takes longer to start than `PyCall`, largely because there are a lot of wrapper types (`julia.AnyValue` etc.) to compile.

0 commit comments

Comments
 (0)