How to install my own python module (package) via conda and watch its changes

前端 未结 3 1458
南旧
南旧 2020-12-12 13:50

I have a file mysql.py, which I use in almost all of my projects. Since I do not want to copy and paste the same file into each of these projects I wrote a modu

3条回答
  •  青春惊慌失措
    2020-12-12 14:34

    While the previous answers are doing what I need, I just want to show what I will be using instead. Since it was my plan to learn about conda packages anyway...

    0. Good sources

    1. Michael Sarahan - Making packages and packaging "just work" | YouTube
    2. GitHub - audreyr/cookiecutter: A command-line utility that creates projects from cookiecutters (project templates) and use one of these templates:
      • GitHub - audreyr/cookiecutter-pypackage: Cookiecutter template for a Python package.
      • GitHub - conda/cookiecutter-conda-python: A cookiecutter template for conda packages using Python (This is what I used)

    1. Create a python package template for conda using cookiecutter

    conda install -c conda-forge cookiecutter
    

    Now change to the directory where you want to initialize your package, then do:

    cookiecutter https://github.com/conda/cookiecutter-conda-python.git
    

    This will ask for some basic information about the package that you want to create. Then change into your repo

    cd myrepo
    

    2. Build your package

    make sure conda-build is installed, if not run

    conda install conda-build
    

    Make sure to set the CONDA_BLD_PATH as mentioned in anaconda - using a different conda-build root directory - Stack Overflow. This will be the directory where you can find your packages, then run:

    conda build conda.recipe
    

    to build your package and clean up after you with

    conda build purge
    

    3. Set up your own local channel (no uploading to anaconda.org)

    Read

    • Creating custom channels — Conda documentation
    • python - add local channel to .condarc on windows - Stack Overflow

    for help.

    Index each platform. Maybe someone can confirm that this step is not needed, as my builds already contain the repodata.json. Otherwise:

    conda index D:\CODE\condamychannel\win-64
    

    Test if the package can be found with

    conda search -c file:///D:\CODE\condamychannel --override-channels mypackage
    

    or add the channel to the config directly (per environment)

    conda config --add channels file:///D:\CODE\condamychannel
    

    4. Install (and update) the package

    activate myenv
    

    and

    conda install mypackage
    

    Once I change mypackage, I give it a new version number in meta.yaml and setup.py and build the package with conda build conda.recipe. Updating is simply

    conda update mypackage
    

    See if your package works:

    python
    >>> import cli from mypackage
    >>> cli.cli()
    CLI template
    

    This may not be the optimal way, but I could not find a tutorial that contains all the steps I outlined above.

提交回复
热议问题