Open 00sapo opened 3 years ago
We should use https://github.com/JuliaLang/juliaup for this. It's not great if every library handles its dependency on its way.
I see your point. What are the benefits of juliaup over Jill?
Juliaup is focused on Windows, while Jill is multiplatform
if one is using pyjulia, it's already using python, so Jill would be the obvious way since it's a python module with python API.
I think juliaup eventually becomes cross-platform. Not using Python API is exactly the point; all use cases for pure-Julia, Python, R, etc. programs will use the same installation with a uniform end-user interface.
I think this kind of discussion is premature: when an installer will be a de facto standard (like pyenv for instance) we'll be able to chose the best one. For now, the easiest (from API perspective) and the most used one could be a good choice.
The easiest one is probably Jill, the most used one is (looking at GitHub stars) Jill.
P.s. I was thinking that the most used one was juliavm, but according to GitHub stars, it's even less used than juliaup.
On October 30, 2021 12:13:24 AM GMT+02:00, Takafumi Arakaki @.***> wrote:
I think juliaup eventually becomes cross-platform. Not using Python API is exactly the point; all use cases for pure-Julia, Python, R, etc. programs will use the same installation with a uniform end-user interface.
-- You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub: https://github.com/JuliaPy/pyjulia/issues/473#issuecomment-955076894
-- Inviato dal mio dispositivo Android con K-9 Mail. Perdonate la brevità.
@00sapo Thank you for this code. I tried it and it works well. Can I use it in one of my projects which uses diffeqpy
? We want to provide a way for users to not have to worry about installing Julia if they want to use diffeqpy
. We will provide acknowledgment for you in our project repository.
Also, could you provide more clarification on what path_to_project
is for? What is the advantage of instantiating a project?
My current thoughts are that management task like installing Julia, making sure packages are available, compiling a Julia project, etc., would better be handled in another layer, not in pyjulia itself. Maybe some ideas could be migrated in if they are tested and seem appropriate.
Just to clarify: I think it's very unlikely that I will merge or review a patch that maintains Julia installations in a Python-specific way. There should be a language-agnostic user-facing interface (like juliaup CLI).
I neglected to mention here that I wrote a python package find_julia. It is lightweight and should be easy to use. It is a bit featureful, has more than you would want to put in pyjulia.
It supports specifying the required Julia version in exactly the same syntax and semantics that Julia does with julia_semver.
By default it prefers looking in the juliaup directory first and returns the best match. If there is no match, it looks in jill-installed locations. This is because the latter is a bit slower; juliaup caches the julia versions.
It offers to install, if none is found. This is done via jill.py, which is loaded on demand because it takes >50ms to load. In the future, supporting juliaup for downloading would be a good idea. I would do it now, but juliaup is still developing and it does not yet have an API.
Here is a little function that downloads julia if needed, set up an environmnt and instantiate the project.
I think something similar should be provided so that users can call it in
setup.py
Example from: https://github.com/00sapo/pyjulia-vs-juliacall