-
Notifications
You must be signed in to change notification settings - Fork 57
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
install into a single global directory? #123
Comments
Isn't it wasteful to have the base conda environment for each Julia environment? I'd suggest:
Notes: The reason why above scheme (i.e., sharing Some discussion points:
Edit: swap " |
I agree it's fine for different Pkg environments to correspond to different conda virtualenvs.
I don't think we should use |
I thought it'd be nice to have a scheme for package-specific data directory. For example, dataset library (like RDatasets.jl) could use such location across all environments. But this is more like Pkg.jl enhancement idea. I understand that that the aim of Conda.jl is to isolate it from user's |
I'm just worried about user-maintained |
(See https://github.com/oxinabox/DataDeps.jl for other kinds of data.) |
Sure, I understand the worry. How about reusing the same miniconda installation for all Julia versions and all Julia environments? (They of course can have different environments.)
It looks like they have a similar discussion too: oxinabox/DataDeps.jl#48 |
The lack of persistent package options (JuliaLang/Juleps#38) is a problem here too, because we currently have no way of "remembering" whether the user selected Python 2 or Python 3 or some custom environment. It's pretty urgent that we get some fix here, even if it is suboptimal. Upgrading Conda.jl currently takes forever, breaks PyCall (because the libpython path changes), and wastes gigabytes of space. |
Why not use Isn't it simple to fix once the location is decided? |
The Julia version doesn’t seem necessary or sufficient for isolating Conda setups. |
I agree. But I don't think it's reasonable to install miniconda for each Julia environment since it's much more space consuming. That's why I suggested a hybrid approach based on Furthermore, to obtain some degree of de-duplication so that it becomes reasonable to use separate conda environment for some Julia environments, we need JuliaLang/Pkg.jl#777 |
Using the Julia version will also lead to too many Conda installations; there is no strong reason not to share conda installations between Julia 1.0 and Julia 1.1, for example, or for that matter with Julia 0.7. In the short run, I'm starting to feel like it will be better to just install conda in |
Yes, that seems pretty reasonable to me. |
Currently we install into the
deps
directory. However, in Julia 1.0, packages are no longer updated in place, this means that every time you update Conda.jl it needs to re-install anaconda, which is wasteful and breaks things like PyCall that expectlibpython
to stay in one place.My thinking is that we should put the root environment into
~/.julia/$JLENV/conda$(CONDA_JL_VERSION)
instead, whereJLENV
is the current Julia package environment. This way, we will only have a single Anaconda installation (per Python major version) that persists across updates.However, I must admit that I don't fully grok how Pkg environments work. From reading the docs, I guess there is a stack of environments. @StefanKarpinski, is there a way to tell which environment Conda.jl was installed into? Am I thinking about this in the right way?
The text was updated successfully, but these errors were encountered: