-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
No module named 'packaging' when install horovod #3744
Comments
ping @tgaddair have a look ~ |
Fix has been released. |
This issue isn't fully fixed, install still fails with The fix moved the
This is the full output of pip: Details
|
Hi itsdani, Do you have the ModuleNotFoundError: No module named 'packaging' issue in get_cmake_in fixed? I got the same error while pip install --use-pep517 horovod==0.27.0. |
No, horovod is not compatible with pep517 (and poetry, since it forces pep517), which enforces isolated build environments. Horovod doesn't specify build-dependencies explicitly in a pyproject.toml (like But the solution is not as simple as adding these to a pyproject.toml as dependencies, because horovod also has a lot of other optional dependencies (e.g. tensorflow) and these should be dynamically added to the build environment, probably by using a custom build-backend script. I have tried making the POC for such a backend in #3758 but I'm not familiar enough with the horovod build to write an actually useable one. So at this point I gave up on making this work. There is some more discussion about this on PR #3758 and issue #3697 As far as I know this hasn't been dealt with since then, but I don't really follow the topic anymore so I might be wrong |
Hi Daniel, Thanks for your reply. Just a general question, if horovod is not compatible with pep517 right now, is there any other way to install horovod successfully right now, I need to use it for distributed training? Thanks! |
As a hacky workaround we removed horovod as a project dependency, activated our venv (managed by poetry) and installed horovod with pip manually, without using pep517 isolation. We used something like this in our install script:
|
I think currently the typical way to go would be to have a separate build step for Horovod. For example: Set up a virtual environment with your version of TensorFlow, PyTorch, and/or MXNet. Inside this virtual environment you could build a binary wheel of Horovod that fits your environment and tag it with a local version identifier, e.g.: |
It seems that the horovod v0.26.0 has some dependency problems.
How long does it take for a new patch version to be released or should I pin the horovod version? ^_^
The text was updated successfully, but these errors were encountered: