-
Notifications
You must be signed in to change notification settings - Fork 30
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
pip or conda install #11
Comments
Well, I think it probably won't be too difficult to package it into a package manager per se, but I think there are some additional things that should be done so that this works well:
I don't think I have the capacity to work on this right now. If anyone or you would like to give it a try you are very welcome to do so! With that said though, I don't really see the difference between |
When using CrabNet standalone, I don't think it makes much of a difference to Other comments on package managerAside from my personal interests, I think having a PyPi or conda version increases the visibility and reduces the amount of background knowledge required to use CrabNet. While it's pretty easy for you or me to do this, there are quite a few people who might be interested in using it but are new to Python, coding in general, command/shell terminals, environments, git and/or GitHub, etc. I think it's well worth the investment to learn these things, but everyone has to make that judgment call for themselves. Ironically, it usually takes a significant effort to make things easier for others (which is pretty clear from the bullets you gave and for example, the Numba repo which I've made some contributions to, and wow, that must have taken a decent amount of time to set up the workflow and a lot of time to maintain). EditOne other thing about project integration is that CrabNet seems to be fairly dependent on file paths (for example, storing a |
VSCode seems to be a lot more friendly with switching environments than Spyder. I'm doing a per-file switch of environments as a bit of a hacky workaround. Thanks for the suggestion about VSCode a while back! |
You are right that some of the paths and loading functions are hard-coded, and that would for sure be one of the things that are required if we want to make this package publishable and more "pluggable" if people intend to use it together with other packages and not just standalone! It's hard for me to recommend what you should do; I also run into environment conflicts with different packages and often there is no one ideal way to resolve them. I think CrabNet will run with slightly newer/older versions of PyTorch/CUDA toolkit/Python, but these rely on the individual packages' compatibility with different regions and I have not tested these combinations. |
It got inconvenient pretty quickly to switch between conda envs (even in VSCode), so I took another look. By combining all of the dependencies I needed (pymatgen, ElM2D dependencies, and CrabNet dependencies) into the name: elm2d-crabnet
channels:
- pytorch
- conda-forge
dependencies:
- pymatgen
- cython #ElM2D
- numba #ElM2D
- python=3.8.*
- numpy
- scipy #ElM2D
- pandas
- scikit-learn
- plotly #ElM2D
- setuptools #ElMD
- umap-learn #ElM2D
- hdbscan
- matplotlib
- seaborn
- pytorch=1.7.*
- cudatoolkit=11.*
- tqdm And it was able to resolve the dependency structure. (For the repo with only a pip install, I looked at |
For reference there is a pip/conda installable version via my fork of CrabNet, and I tried to keep the changes backwards-compatible. conda install -c sgbaird crabnet or pip install crabnet |
How tough do you think it would be to package CrabNet into one of the package managers?
The text was updated successfully, but these errors were encountered: