Anaconda Enterprise: Documentation

# Using package managers

- Working with conda packages
- Working with PyPI packages

Repository supports two package managers, conda and PyPI. To work with conda or PyPI packages, you must use their corresponding subdomains.

EXAMPLE: To install conda packages from the user “travis,” use the Repository URL:

    https://conda.<your-anaconda-repo>/travis

EXAMPLE: To install PyPI packages from the user “travis,” use the Repository URL:

    https://pypi.<your-anaconda-repo>/travis

## Working with conda packages

### Building a conda package

To build a package using `conda build`:

1. Install Anaconda Client and conda build:

       conda install anaconda-client conda-build

2. Choose the repository for which you would like to build the package. In this example, we use a simple, public conda test package:

       git clone https://github.com/anaconda-platform/anaconda-client
       cd anaconda-client/example-packages/conda/

   In this directory, there are two required files, build.sh, and meta.yaml.

   NOTE: Linux and macOS systems are Unix systems. Packages built for Unix systems require a `build.sh` file, packages built for Windows require a `bld.bat` file, and packages built for both Unix and Windows systems require both a `build.sh` file and a `bld.bat` file. All packages require a `meta.yaml` file.

3. To build the package, turn off automatic Client uploading and then run the `conda build` command:

       conda config --set anaconda_upload no
       conda build .

   All packages built in this way are placed in a subdirectory of Anaconda’s `conda-bld` directory.

4. You can check where the resulting file was placed with the `--output` option:

       conda build . --output

For more information on conda’s overall build framework, you may also want to read the articles Building conda packages and Tutorials on conda build.

### Uploading a conda package

Upload the test package to Repository with the anaconda upload command:

    anaconda login
    anaconda upload /path/to/conda-package.tar.bz2

NOTE: Replace `/path/to/` with the path to where you stored the package.

### Installing conda packages

You can install conda packages from Repository by adding channels to your conda configuration.

1. Because conda knows how to interact with Repository, specifying the channel “sean” translates to `https://<your-anaconda-repo>/sean`:

       conda config --add channels sean

2. You can now install public conda packages from Sean’s Repository account. Try installing the testci package at `https://<your-anaconda-repo>/sean/testci`:

       conda install testci

You can also install a package from a channel with a token and a label:

    conda install -c https://conda.anaconda.org/t/<token>/<channel>/label/<labelname> <package>

NOTE: Replace `<token>` with the provided token,``<channel>`` with the user channel, `<labelname>` with the label name and `<package>` with the package name you want to install.

## Working with PyPI packages

### Uploading PyPI packages

You can test PyPI package uploading with a small, public example package saved in the anaconda-client repository:

1. Begin by cloning the repository from the command line:

       git clone git@github.com:anaconda-platform/anaconda-client.git
       cd anaconda-client/example-packages/pypi/

2. You can now create your PyPI package with the `setup.py` script:

       python setup.py sdist

3. Your package now is built as a source “tarball” and is ready to be uploaded with:

       anaconda upload dist/*.tar.gz

Your package is now available at:

    http://<your-anaconda-repo>/USERNAME/PACKAGE

NOTE: Replace `<your-anaconda-repo>` with the name of your local Repository, `USERNAME` with your username and `PACKAGE` with the package name.

### Installing PyPI packages

The best way to install a PyPI package is using pip. For the following command, you can use the package you authored in the above steps:

    pip install --extra-index-url https://pypi.<your-anaconda-repo>/USERNAME/PACKAGE

NOTE: Replace `<your-anaconda-repo>` with the name of your local Repository, `USERNAME` with your username and `PACKAGE` with the test-package name.