In addition to the answer by @mocha, here is an alternative way,
which avoids opening the shell if you prefer to stay in Jupyter.

Open a Jupyter document in the Jupyter notebook, type the following
in a code cell, and execute that cell:

```
!pip install admcycles --user
```

Explanation: the initial `!`

is to run a shell command from
inside a Jupyter document.

If that Jupyter document is using the Sage kernel, then the `pip`

command runs Sage's pip; you don't need to type `sage -pip`

.

In fact this is also the case in the Sage-Windows "Sage shell",
you could type

```
pip install admcycles --user
```

with just `pip`

instead of `sage -pip`

.

Optionally, add `--upgrade`

to the command:

```
!pip install admcycles --user --upgrade
```

(with initial `!`

if you type this in Jupyter, or without it
if you type this in the shell).

The extra `--upgrade`

is useful in case you already have a version
of `admcycles`

installed, older than the latest released version.

In that case, without `--upgrade`

, pip finds that some version of
admcycles is already installed and stops there, so the old version
stays installed; while with `--upgrade`

, pip uninstalls the old
version and installs the new one.