-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use environment.yml mechanism for specifying conda dependencies #124
Conversation
Thanks for the PR and the thoughts! We've been tracking conda's In the past, we have not recommended it for one big reason and a couple of small reasons. The big reason is that the The little reasons include (again, maybe have changed?): no equivalent of All this to say that I'm not quite over the hump yet in terms of recommending |
Thanks for the quick reply! I have definitely encountered version conflicts in mixing pip and conda-installed libraries, which is why my typical workflow involves installing everything I can using conda, and using pip as a last resort. I'd love a solution that would permit mixing the two. conda seems to have merged in functionality to pass parameters to pip in this PR. Does this seem like it addresses some of your concerns? Also, I'd love to find out if conda has changed from recommending platform-specific .yml files. Can you point me to where this recommendation was previously made? |
Just like to provide a concrete example of a conda + pip mixing issue with a package issues/3378 |
It looks like yes, conda/conda#3969 did add the ability to pass options to pip from the conda It also looks like since conda/conda#6221, conda now allows the environment to be exported in a non-platform-dependent way |
…ing both environment.yml and requirements.txt to add the local module(s)
I've moved things around a bit. Though the pip flags were working on linux in recent |
just wanted to vote +1 on this. I use geopandas a lot, which depends on GDAL, so the option to use conda over pip would be a massive boon Both |
Hi everyone, I am working with your project template (which is awesome by the way) using conda environments. During setup I had a crazy problem and I think it may help @hackalog to create its patch. When creating a conda virtual environment and exporting it using
I didn't really know what the
At which point I activated the original environment to see what was going on with this package and I got:
Apparently, |
I think the best thing to have there is:
With a recent conda, this works just Fine. I've been putting it through the paces for a couple of months now, so I think it's time to respin and bump this PR. |
Continuing this discussion in #118 |
…eck if conda environment is enabled in test_environment
Okay, I've updated this patch to reflect the way I've been using conda the past few months. In short, I think this addresses all the issues raised by @pjbull I'd love to hear test results from others using conda... |
I noticed a merge conflict crept in after some recent fixes to master. I've merged them and respun this PR. Any feedback? @pjbull? |
Thanks for the ping @hackalog. I'm planning to take a look this month. Long story short is that I think we need a coherent take on both environment management and dependency specification that: (1) is simple for users, (2) reliably works together / is tested (since it expands the surface area of what is "supported"). I'd like to have the chance to test this, pipenv, and classic requirements.txt and expose those options without overwhelming. |
@hackalog Thanks for this PR. I've tried it and ran into an error due to your
The So, to make it work I had to change the invocations of
Perhaps this will help someone. |
Yes. In fact, I have this very workaround in my cookiecutter-easydata fork already. I will update the PR with something similar. Nowadays, I tend to also ask for the location of the |
Anaconda has a yml-based specification file for indicating dependencies. We should use this instead
of pip if we are using conda to manage virtual environments
As an added bonus, this makes it a little easier to add pipenv support by extending the VIRTUALENV choices