[Doc]undocumented matrix of dependencies when install
strint opened this issue ยท 5 comments
๐ The doc issue
Jake Dahn gives a very clear description of the installation problem. We put it here to follow the problem.
source: https://x.com/jakedahn/status/1816656205596496263
From Jake Dahn
I managed to get everything working, I was mostly struggling to get oneflow working.
The first problem I had, was I was trying to use python3.12 for which there are no working builds (as far as I can tell). So I swapped down to 3.11.
Then I went down the red herring path trying to understand which oneflow was the right oneflow, there are several distinct pip package repos, many of them include 1.0 packages while the ones I got working with onediff are the 0.9.1 dev builds from https://github.com/siliconflow/oneflow_releases/releases/expanded_assets/community_cu118
I also tried using nexfort, because the onediff readme implies that you only need either nexfort or oneflow. However if you are using the OneDiffX diffusers extensions, you are forced to use oneflow.
So when I say "one does not simply install oneflow", I mean there's a fairly undocumented/confusing/contradictory matrix of dependencies that are difficult to traverse. I don't say that to simply criticize, just trying to share my experience
thank you for onediff, it's great once you've got it working! <3
Suggest a potential alternative/fix
Tips
- oneflow verison
- python verison
- OneDiffX with oneflow
First ensure that python verison 3.10 and then install by readme to avoid version issues. The installation path can be python3.10-> Install the remaining dependencies in readme order- -> Then install OneDiffX
@lijunliangTG For what it's worth, I did succeed in installing everything with python 3.11.
Is there a specific reason/benefit to choose 3.10?
@jakedahn Because when I try to use onediff with python 3.10, I can install the onediff-related suite directly without any additional problems.
@lijunliangTG For what it's worth, I did succeed in installing everything with python 3.11.
Is there a specific reason/benefit to choose 3.10?
Most of our dev and test is under 3.10.
But we should support 3.11 with no problem, and we will have a try.
Related background info: https://github.com/siliconflow/onediff/blob/main/setup.py#L32-L34