- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 1.1k
install: Minimize install footprint #614
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
Conversation
| 
 | 
| 
 It is true that we could remove networkx and pandas, but judging from the issues and the mailing list a lot of mesa users are python beginners. That's way I think of mesa as a "batteries included" package that should ship with everything needed. While it is really not that difficult to install missing requirements, I wouldn't want to risk losing people. Networkx is not that big and pandas is so widely used. That said it would be nice to have the ability to only install "core" mesa, i.e. without  | 
| 
 Ah, didn't see the  My specific use case is for an ABM library that is built on top of Mesa. Having lots of those huge libraries slows down CI test considerably, especially the ones where they have to be cython-compiled even if the pip download has been cached. Also, indirect dependencies sometimes causes install gotchas. General arguments on whether to include examples dependencies into library dependencies: 
 Every examples directory already has requirements.txt. Error messages caused by missing imports are explicit. The requirements of the examples (they will keep increasing) shouldn't be included in the library's requirements. What if there is an example that uses sklearn/tensorflow/pytorch/any-other-huge-library? Orthogonal to the rest: 
 That's an assumption along the line that 0.95 * everyone uses  | 
| My comment wasn't meant to be applicable to example requirements, but just  But I am very positive that #617 will get merged and then networkx will be part of the main library anyway (since, as I said, networks are a key ABM feature). Regarding  For  | 
| As the PR stands with removing Networkx and Jupyter.... @rht Ty for including the log output. That is interesting. I think a minor adjustments would need to happen before a merge. 
 Optional -- #4 - create an explicit error message that tells people to  | 
| RE: Pandas -- maybe we should move that to a discussion ticket? Maybe there is a way to create an alternate option and you can override Pandas? | 
| 
 Because it is used in tests,  
 #617 makes the  
 | 
| 
 I guess there are arguments for both ways. But if we want to have a specialized library, I think we can remove all dependencies, no? 
 Given the ease of installing mesa with  @rht I will open an issue about removing all dependencies and the steps necessary for that. | 
| Amended so that it removes  | 

click: only used in tests, hence should be put in devjupyter: only appears in examplesnetworkx: only appears in test_space.py and examples (technically it is implicitly required inNetworkGrid, but again, not every users have to installnetworkxif they don't useNetworkGridat all)This should minimize the install footprint of any libraries that depend on Mesa.