diff --git a/website/docs/usage/index.md b/website/docs/usage/index.md index 170e16591..ad2614175 100644 --- a/website/docs/usage/index.md +++ b/website/docs/usage/index.md @@ -170,27 +170,52 @@ Compared to regular install via pip, the developer dependencies such as Cython. See the [quickstart widget](#quickstart) to get the right commands for your platform and Python version. -#### Ubuntu {#source-ubuntu} + -Install system-level dependencies via `apt-get`: +- **Ubuntu:** Install system-level dependencies via `apt-get`: + `sudo apt-get install build-essential python-dev git` +- **macOS / OS X:** Install a recent version of + [XCode](https://developer.apple.com/xcode/), including the so-called "Command + Line Tools". macOS and OS X ship with Python and git preinstalled. +- **Windows:** Install a version of the + [Visual C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) + or + [Visual Studio Express](https://www.visualstudio.com/vs/visual-studio-express/) + that matches the version that was used to compile your Python interpreter. + +### Building an executable {#executable} + +The spaCy repository includes a [`Makefile`](%%GITHUB_SPACY/Makefile) that +builds an executable zip file using [`pex`](https://github.com/pantsbuild/pex) +(**P**ython **Ex**ecutable). The executable includes spaCy and all its package +dependencies and only requires the system Python at runtime. Building an +executable `.pex` file is often the most convenient way to deploy spaCy, as it +lets you separate the build from the deployment process. + +> #### Usage +> +> To use a `.pex` file, just replace `python` with the path to the file when you +> execute your code or CLI commands. This is equivalent to running Python in a +> virtual environment with spaCy installed. +> +> ```bash +> $ ./spacy.pex my_script.py +> $ ./spacy.pex -m spacy info +> ``` ```bash -$ sudo apt-get install build-essential python-dev git +$ git clone https://github.com/explosion/spaCy +$ cd spaCy +$ make ``` -#### macOS / OS X {#source-osx} +You can configure the build process with the following environment variables: -Install a recent version of [XCode](https://developer.apple.com/xcode/), -including the so-called "Command Line Tools". macOS and OS X ship with Python -and git preinstalled. - -#### Windows {#source-windows} - -Install a version of the -[Visual C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) -or -[Visual Studio Express](https://www.visualstudio.com/vs/visual-studio-express/) -that matches the version that was used to compile your Python interpreter. +| Variable | Description | +| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `SPACY_EXTRAS` | Additional Python packages to install alongside spaCy with optional version specifications. Should be a string that can be passed to `pip install`. See [`Makefile`](%%GITHUB_SPACY/Makefile) for defaults. | +| `PYVER` | The Python version to build against. This version needs to be available on your build and runtime machines. Defaults to `3.6`. | +| `WHEELHOUSE` | Directory to store the wheel files during compilation. Defaults to `./wheelhouse`. | ### Run tests {#run-tests} diff --git a/website/docs/usage/v3.md b/website/docs/usage/v3.md index 4d30477e1..44810da58 100644 --- a/website/docs/usage/v3.md +++ b/website/docs/usage/v3.md @@ -346,6 +346,8 @@ A pattern added to the dependency matcher consists of a **list of dictionaries**, with each dictionary describing a **token to match** and its **relation to an existing token** in the pattern. +![Dependency matcher pattern](../images/dep-match-diagram.svg) + - **Usage:** @@ -538,6 +540,9 @@ Note that spaCy v3.0 now requires **Python 3.6+**. doesn't provide lemmas by default or switch automatically between lookup and rule-based lemmas. You can now add it to your pipeline explicitly and set its mode on initialization. +- Various keyword arguments across functions and methods are now explicitly + declared as _keyword-only_ arguments. Those arguments are documented + accordingly across the API reference. ### Removed or renamed API {#incompat-removed}