-
-
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
Docs: Add description of olefile to "External Libraries" #7502
Conversation
I'm not sure this is the right place to mention this library. I am surprised it is not mentioned in |
I've created PR #7509 as an alternative to this, mentioning olefile under 'Basic Installation' instead. |
olefile became an optional dependency in commit 9175706, but it hasn't been mentioned in the library list so far.
I agree that this is a bit convoluted. While the general headline is "Building From Source", the specific section just lists external libraries and does not distinguish between build and runtime dependencies. An even more complex situation occurs for tcl/tk: Even though listed here and in the package lists below, Tcl and Tk headers are actually not required to build Pillow. (I tried that on Debian and Alpine.) What is required at runtime are that tkinter Python bindings, which are part of the Python standard library, but packaged separately by most distributions. I have added another commit (8a87d37) to mention tkinter and move non-library dependencies to the bottom of the list (not that there was consistent ordering in the first place). This is still not ideal and somewhat inconsistent with the package lists below, but better than the status quo.
I also like that PR, but I think the information should be available in both places. |
#7509 has been merged. Please could you update this PR from |
libraqm does provide some information on this front. I've created #7562 to update the description of tcl/tk, explaining that it was once a build dependency, but no longer. |
Here's a link to that version of the docs if it is helpful - https://pillow-radarhere.readthedocs.io/en/olefile-docs/installation.html I don't have permissions to merge main into this. |
@aclark4life Please could you enable this setting at https://github.com/python-pillow/Pillow/settings so we can update PRs from |
I don't think Pillow requires tkinter, it just interfaces with it. If you don't have tkinter installed, you are not missing out on any Pillow functionality. For a similar example, Pillow doesn't require NumPy - unless you're trying to pass data between Pillow and NumPy. I don't think these are things that users need to concern themselves with if their goal is just to install Pillow. As for olefile, my vote is also that between mentioning it in the 'Basic Installation' and 'Image file formats'. it is sufficiently documented. If you discover after installation that you want to install it, then that is fairly trivial to do. |
Are you sure about that? https://pillow.readthedocs.io/en/stable/reference/ImageTk.html says "The ImageTk module contains support to create and modify Tkinter BitmapImage and PhotoImage objects". To me, this sounds like some image formats from the Tk world. But I'm not very familiar with that, so it may also be possible that BitmapImage and PhotoImage are not full-blown image formats, but just useful for building UIs. |
"Tkinter BitmapImage and PhotoImage objects" aren't images that exist on disk, they're Python objects. |
#7563 has also been merged, documenting the use of olefile further in a way, by adding it as an optional dependency to pyproject.toml. |
olefile became an optional dependency in commit 9175706, but it hasn't been mentioned in the library list so far.