Skip to content
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

Make espresso "pip installable" by adding a setup.py file #4222

Open
KaiSzuttor opened this issue Apr 12, 2021 · 6 comments · May be fixed by #4884
Open

Make espresso "pip installable" by adding a setup.py file #4222

KaiSzuttor opened this issue Apr 12, 2021 · 6 comments · May be fixed by #4884

Comments

@KaiSzuttor
Copy link
Member

... just like any other python package

@KaiSzuttor
Copy link
Member Author

An example can be found in https://github.com/m-pilia/disptools

@RudolfWeeber
Copy link
Contributor

RudolfWeeber commented Apr 12, 2021 via email

@jngrad
Copy link
Member

jngrad commented Apr 12, 2021

See https://pypi.org/project/lbmpy/ for a python package that takes arguments in brackets to include features like GPU support.
The corresponding python logic to handle these arguments is available in pycodegen/lbmpy:setup.py#L99-107.

@KaiSzuttor
Copy link
Member Author

KaiSzuttor commented Apr 18, 2021

This would be desirable.

I guess the issue is that not all dependencies can be pip-installed.

In the example you posted it was not obvious to me, how C++ library dependencies are handled. And then, there is MPI, which also lives outside the Python realm.

I think it's okay to fail if you provide a source package. We could probably also deploy a wheel binary package (c.f. https://softwareengineering.stackexchange.com/questions/408214/best-way-to-go-about-including-c-c-dependencies-in-python-packages). BTW this is pretty standard, maplotlib for example may also fail to install via pip because of unmet dependencies.

@SamTov
Copy link

SamTov commented Jul 1, 2021

TensorFlow is a good example of a project heavily built on cpp libraries but has a nice pip install interface.

To a lesser extent for just linking c++ files is DScribe which uses the same approach as MDAnalysis

They might be helpful references.

@jngrad jngrad removed the CodingDay label Aug 2, 2021
@SamTov
Copy link

SamTov commented Oct 28, 2021

I can try to do it. No promises on time though.

@jhossbach jhossbach linked a pull request Mar 17, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants