I could almost live with this because it would cut down duplication of dependency specifications within projects.
#CONDA INSTALL PACKAGE FROM FILE INSTALL#
That conda-requirements-run.txt could be then directly used with conda install -file conda-requirements-run.txt. Or, you could do it the other way around and use a separate file with the list of requirements and include that in meta.yaml. It would be great to have a "conda supported" command, because then I could persuade others to use it :) If you have a very simple recipe, you could do something like conda install -file <( conda render /path/to/recipe/ | python -c 'import sys import ruamel_yaml as yaml print(*yaml.load(sys.stdin), sep="\n")' ) (And presumably for some packages it would be necessary to install the build dependencies too.) So maybe it could be conda install-requirements recipe with options to control which sections are used? (And some sensible combination by default, if possible.) Or a conda-build command that directly invokes conda install, e.g., conda install-run-requirements /path/to/recipe/ĭevelopers would probably also want to install the test requirements. I haven't thought about that because I'm biased to developing only python packages. I don't know if conda develop is supposed to be python only, or if it's expected to do any more of what's specified in a package's meta.yaml/associated build scripts.It naively looks to me like I could put together some kind of command to get the dependencies from meta.yaml using conda_() and then reading 'requirements/run' etc, but there are probably subtleties I'm not considering! I guess I'm hoping that by asking for only an "install dependencies from meta.yaml" command rather than to fix/upgrade conda develop, there might somehow be less work involved. , depN are somehow never quite the same as what's in meta.yaml (accidentally, not just because dependencies have moved on since last time), and are different from what developers actually install, and vary again on travis and appveyor too (accidentally, not just because there are genuine platform differences).Ī conda "install dependencies from" meta.yaml command could cut down the times dependencies are specified in a project, greatly improving the chance that developers and CI systems are all using the same dependencies, which will be the same ones as in the conda package when it's released, helping users get a reliable package. (which gets a developer the released package's dependencies, not those specified in the repo's current meta.yaml file), orĬonda install dep1 dep2. And I don't want to use an existing version of pkg from elsewhere because the dependencies may be out of date.Ĭurrently, projects I see tend to have developer instructions like one of the following:Ĭonda install pkg & conda remove -force pkg & pip install -no-deps -e.
![conda install package from file conda install package from file](https://blog.electroica.com/wp-content/uploads/2019/07/Screenshot-from-2019-07-18-03-28-54-1.png)
I don't want to have to build the conda package and then install dependencies from it because that's a time consuming process - particularly if I am currently editing the dependencies - and the package could anyway fail to be created (e.g. Unless I'm misunderstanding, I think that issue leads to a command to do something like conda install -dependencies-only pkg, where pkg is an existing (built) conda package. I think what I want has been asked before ( #5126), but the resolution there is not what I'm looking for. I would also have no problem running pip install -no-deps -e myself, after having installed the dependencies using conda, because I am only ever working on pure python packages 1. However, I would prefer a new environment not to be created (or for it to be optional), because I want to be able to install multiple packages' sets of dependencies into the same, existing environment. conda/conda-build#1677), in addition to installing the package in 'develop' mode. conda/conda-build#2633 (comment), conda/conda-build#1990 (comment), conda/conda-build#1992).Ī suggestion that seems to have come up several times for conda develop is that it should create an environment from the meta.yaml file (e.g.
![conda install package from file conda install package from file](https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https:%2F%2Fblog.kakaocdn.net%2Fdn%2F4mMZu%2Fbtq1Nu0WGM6%2FL1nTGo3xoFGr2qlAzRk7m0%2Fimg.png)
However, conda develop does not seem to do what I want, and is currently not recommended (e.g. The python packages I'm developing always have a meta.yaml file in the repository (for building a conda package to release), so I hoped I would be able to use that somehow via conda develop.
![conda install package from file conda install package from file](https://resources.jetbrains.com/help/img/idea/2021.3/py_conda_settings.png)
Often, I would prefer to use conda instead of pip - particularly for installing the dependencies of the python packages I'm developing. on each of the 3 git checkouts, which would install the 3 packages in 'develop'/'editable' mode, and would also install the dependencies of all 3 into my current environment. In the python world, I might run pip install -e. Imagine I'm developing 3 pure python packages.