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 module - possibly a package in the future.
How do I add a local module to my conda environment, and automatically update or watch it when I change something in mysql.py
? How to do the same for a package?
I would like to avoid to set up a local channel/repository and just reference to the folder with mysql.py
.
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...
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
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
Read
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
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.