-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Build fails under Cygwin with Python 3.9.16 and false "jpeg not found" message #7158
Comments
We currently test Cygwin as one of our CI jobs - https://github.com/python-pillow/Pillow/blob/main/.github/workflows/test-cygwin.yml
If I remove |
I can confirm that adding You can close the issue or keep it for reference until setuptools work again without that setting. |
Thanks @radarhere ! Regularly testing Cygwin on GH Actions since 2021™, awesome. https://github.com/python-pillow/Pillow/actions/workflows/test-cygwin.yml |
@DWesl I would have thought that pypa/distutils#139 became pypa/setuptools@c6f28fc, and so would have been included in setuptools 62.4.0. Do you have any idea why |
I don't need that when building locally, so my guess is that virtualenv installs an old version of setuptools. Does this script work better? stamp="$(date +%Y-%m-%d_%H%M%S)"
base="pillow-tmp"
full="${base}_${stamp}"
virtualenv-3.9 "${full}"
pushd "${full}" || exit 1
. bin/activate
pip --version
python --version
pip install 'setuptools>=62.4.0'
pip install pillow
popd |
If I stop using If I print the setuptools version, I get 67.6.0. Interestingly, I also find that it uses UnixCCompiler, which might actually be correct, but your changes in pypa/distutils#139 were to the Cygwin compiler? |
python-pillow/Pillow#7158 (comment) suggests that Cygwin uses UnixCCompiler rather than CygwinCCompiler by default, so UnixCCompiler would need to know how to find shared libraries, import libraries, and static libraries on Cygwin.
I made pypa/distutils#209 to make the same changes in |
@DWesl although I don't know much about the distutils (not to say: nothing 😄 ) , it seems strange that under Cygwin the rules from |
python-pillow/Pillow#7158 (comment) suggests that Cygwin uses UnixCCompiler rather than CygwinCCompiler by default, so UnixCCompiler would need to know how to find shared libraries, import libraries, and static libraries on Cygwin.
python-pillow/Pillow#7158 (comment) suggests that Cygwin uses UnixCCompiler rather than CygwinCCompiler by default, so UnixCCompiler would need to know how to find shared libraries, import libraries, and static libraries on Cygwin.
What did you do?
Tried to install Pillow via pip
pip install Pillow
Then tried to git clone and install via
pip install -e .
from latest source in a fresh and clean virtual environmentWhat did you expect to happen?
Clean download, compile and install
What actually happened?
install errored out:
Potentially related issues:
obs build Debian_10
andobs build Debian_11
failed withThe headers or library files could not be found for zlib
#7066What are your OS, Python and Pillow versions?
Full Python version:
Potentially relevant Cygwin package versions:
Steps to reproduce
See also script below.
virtualenv-3.9 pillow-tst
pip install pillow
Script try-build-pillow.sh:
Script output
Actual available libraries:
$ find /usr/lib /lib -name '*jpeg*' /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/cygpixbufloader-jpeg.dll /usr/lib/libjpeg.dll.a /usr/lib/libopenjpeg.dll.a /usr/lib/openjpeg-1.5 /usr/lib/pkgconfig/libjpeg.pc /usr/lib/pkgconfig/libopenjpeg.pc /usr/lib/qt5/plugins/imageformats/cygqjpeg.dll /lib/gdk-pixbuf-2.0/2.10.0/loaders/cygpixbufloader-jpeg.dll /lib/libjpeg.dll.a /lib/libopenjpeg.dll.a /lib/openjpeg-1.5 /lib/pkgconfig/libjpeg.pc /lib/pkgconfig/libopenjpeg.pc /lib/pkgconfig/libopenjpeg1.pc /lib/qt5/plugins/imageformats/cygqjpeg.dll $ find /usr /lib -name jpeglib.h /usr/include/jpeglib.h
Feel free to contact me (@ mention) if you need further information.
The text was updated successfully, but these errors were encountered: