You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/src/pycall.md
+2Lines changed: 2 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -8,3 +8,5 @@ The existing package [`PyCall`](https://github.com/JuliaPy/PyCall.jl) is another
8
8
-**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.
9
9
-**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.
10
10
-**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