Open worldsheep opened 3 years ago
conda-forge generally does not work well with the Anaconda packages, though I am surprised the experience is as poor as you see. conda-forge has many packages and many versions of those packages, and the Anaconda base environment comes with many packages. conda gets bogged down trying to satisfy the dependency constraints of all those packages. Also, some of the conda-forge packages conflict with the Anaconda ones and that may be affecting what you see (conda-forge builds numpy against a different linear algebra library than Anaconda does, for example).
If you don't need access to everything in the base Anaconda environment, you can create a new environment with gdtk in it and conda should be able to solve for it more easily. For example, you could do:
conda create --name gdstk_env --channel conda-forge gdstk
to create a new environment named gdstk_env
with gdstk installed in it. You can see an overview of working with different environments here.
One other tip about the conda solver -- in my experience it works best when initially creating the environment. So it solves for the package version more quickly if you conda create
with all the package names, rather than conda create
with one package and then conda install
the others one by one.
Another thing to consider is using mamba instead of conda
. You install it into your conda environment and use it on the command line of using conda
(so mamba install -c conda-forge gdstk
). In my experience, it is much faster than conda
when solving for dependencies in a large environment.
Also, see #2 which was a similar issue.
What do you mean not having access to base anaconda environment? I code in Spyder and I use quite some libraries: numpy, pandas, rand,...
I am quite new to the python world and to conda forge. I'll take some time to read what a conda environment is and what mamba does!
What do you mean not having access to base anaconda environment? I code in Spyder and I use quite some libraries: numpy, pandas, rand,...
I meant that if you were just using the Anaconda installer to get access to conda
to install gdstk
and did not need to use all the other libraries that come with Anaconda that you could create a new environment with just gdstk
.
I am quite new to the python world and to conda forge.
Anaconda is a company that has employees who maintain the conda
project and a set of packages for popular data science libraries. Anaconda provides hosting for the packages. conda-forge is a community-run project that builds many open source libraries as conda packages. It uses the free CI services from GitHub and other companies to run the package builds and uploads the packages to Anaconda's servers for hosting. So with Anaconda you have the backing of a company but fewer packages and updates. Also, there are some technical differences, like Anaconda builds numpy with the Intel Math Kernel Library which is proprietary but free to distribute while conda-forge builds numpy with the open source OpenBLAS library instead. This particular difference makes it hard to mix packages between the two channels (default and conda-forge) because many things build against numpy (like gdstk).
I think pretty much everything open source in Anaconda is available in conda-forge. So you could build an environment with conda-forge packages if you like, like conda create --name gdstk_env gdstk numpy pandas spyder rand
(or use mamba
). You can also put all the packages in an environment file instead of putting them on a single command line and use conda env create
or mamba env create
.
Issue:
I tried to install gdstk following the instructions in: https://github.com/conda-forge/gdstk-feedstock but I get the following message in my terminal:
The examining conflict part is taking forever and I ended up aborting. Has anyone encountered the same problem?
I have just installed anaconda and I am running version: 1.10.0
Environment (
conda list
):Details about
conda
and system (conda info
):