Conda-Press ============================ Press conda packages into wheels. The wheels created by conda-press are usable in a general Python setting, i.e. outside of a conda managed environment. Quick start ----------- Run the ``conda press`` command and point it at either an artifact file or spec. For example: .. code-block:: sh # from artifact spec, produces single wheel, including all non-Python requirements $ conda press --subdir linux-64 --skip-python --fatten scikit-image=0.15.0=py37hb3f55d8_2 # from artifact file, produces a single wheel $ conda press numpy-1.14.6-py36he5ce36f_1201.tar.bz2 # from artifact spec, produces wheels for package and all requirements $ conda press --subdir linux-64 xz=5.2.4=h14c3975_1001 # merge many wheels into a single wheel $ conda press --merge *.whl -output scikit_image-0.15.0-2_py37hb3f55d8-cp37-cp37m-linux_x86_64.whl What we are solving ------------------- conda-press allows us to build out a pip-usable package index which is ABI compatible with conda packages. This can help address the following issues / workflows: **Issue 1:** It can be very difficult to build wheels for packages that have C extensions. Also, the provenance of wheels with C extentions can be hard to know (who built it, how it was built, etc.). Conda-press enables community building of wheels, based on conda-forge provided packages. This should make it very easy to build a valid wheel. **Issue 2:** Many packages with compiled extensions do not have wheels available on one or more popular platforms (Windows, Mac, Linux). This is because building wheels can be very difficult. Conda has a lot of packages that are not available as wheels otherwise. Conda-press allows these packages to easily become generally usable wheels. **Issue 3:** Some people want a package index built on newer ABIs than `manylinux`. **Issue 4:** Conda-Press addresses the issue of making shared library dependencies loadable at runtime by having a unix-like directory structure inside of the `site-packages/` directory. This allows wheels to have a common `$RPATH` that they can all point to. How to install -------------- From conda: .. code-block:: sh conda install -c conda-forge conda-press From the source code: .. code-block:: sh $ pip install --no-deps . More technical details about what we are doing ---------------------------------------------- What conda-press does is take an artifact or spec, and turn it into wheel(s). When using pip to install such a wheel, it shoves the root level of the artifact into site-packages. It then provides wrapper / proxy scripts that point to site-packages/bin so that you may run executables and scripts. Contents -------- **Installation:** .. toctree:: :titlesonly: :maxdepth: 1 dependencies **Conferences:** .. toctree:: :titlesonly: :maxdepth: 1 confs/pydata-nyc2019.md **Development Spiral:** .. toctree:: :titlesonly: :maxdepth: 1 api/index devguide/ changelog .. include:: dependencies.rst Contributing ------------- We highly encourage contributions to conda-press! If you would like to contribute, it is as easy as forking the repository on GitHub, making your changes, and issuing a pull request. If you have any questions about this process don't hesitate to ask on the `Gitter `_ channel. See the `Developer's Guide `_ for more information about contributing. ============= Helpful Links ============= * `Documentation `_ * `Gitter `_ * `GitHub Repository `_ * :ref:`genindex` * :ref:`modindex` * :ref:`search` .. raw:: html Fork me on GitHub