Comments (7)
thanks a lot for this! 😄
from docker-mylar3.
It looks like a manual install of Pillow uses "setup.py" whereas the docker install from requirements.txt uses what I'm assuming is a "regular" install?
From docker build:
Using legacy 'setup.py install' for pystun, since package 'wheel' is not installed.
Using legacy 'setup.py install' for sgmllib3k, since package 'wheel' is not installed.
Installing collected packages: sgmllib3k, rarfile, pytz, pystun, zc.lockfile, tzdata, soupsieve, simplejson, Pillow, natsort, more-itertools, MarkupSafe, jaraco.context, feedparser, configparser, pytz-deprecation-shim, Mako, jaraco.functools, jaraco.classes, cfscrape, beautifulsoup4, tzlocal, tempora, jaraco.text, cheroot, portend, jaraco.collections, APScheduler, CherryPy
Running setup.py install for sgmllib3k: started
Running setup.py install for sgmllib3k: finished with status 'done'
Running setup.py install for pystun: started
Running setup.py install for pystun: finished with status 'done'
from pip install:
Using legacy 'setup.py install' for Pillow, since package 'wheel' is not installed.
from docker-mylar3.
this patch fixes it. it appears that --find-links
when installing requirements.txt is causing Pillow to not install correctly.
diff --git a/Dockerfile b/Dockerfile
index 9882f10..c59dcc3 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -41,6 +41,7 @@ RUN \
tar xf /tmp/mylar3.tar.gz -C \
/app/mylar3/ --strip-components=1 && \
cd /app/mylar3 && \
+ pip install --no-cache-dir Pillow && \
pip install --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine/ -r requirements.txt && \
rm -rf lib/pathlib.py && \
echo "**** cleanup ****" && \
from docker-mylar3.
sorry to keep spamming. since the precompiled wheel for Pillow doesn't have webp support I think the options are:
- Install Pillow before requirements.txt so it builds itself
- Remove
--find-links
from the pip install - Get the Pillow wheel compiled with webp support
The second option seems like it'd add an excessive amount lot of time when building the container and I have no idea how to go about fixing an upstream wheel from alpine.
from docker-mylar3.
I'm not familiar with pillow at all, but I do have this one question. If pillow is built with the optional dependency of webp, does it always require the webp package installed?
In other words, if I were to add the webp packages to our wheel builder so pillow builds with webp support, would I have to PR all the other images that use pillow to add the webp package?
I'm trying to figure out the easiest way to solve this.
Thanks
EDIT: This is our wheel builder: https://github.com/linuxserver/wheelie/blob/main/Dockerfile
from docker-mylar3.
I think it'd be ok?
I tested in the mylar container with the above patch:
root@7fa92c6e12cd:/# python3
Python 3.9.5 (default, Nov 24 2021, 21:19:13)
[GCC 10.3.1 20210424] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from PIL import features
>>> features.get_supported()
['pil', 'webp', 'webp_anim', 'webp_mux', 'transp_webp', 'libjpeg_turbo', 'jpg', 'zlib']
>>> exit()
root@7fa92c6e12cd:/# apk del libwebp-tools
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.14/main: No such file or directory
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.14/community: No such file or directory
(1/4) Purging libwebp-tools (1.2.0-r2)
(2/4) Purging libwebp (1.2.0-r2)
(3/4) Purging giflib (5.2.1-r0)
(4/4) Purging libpng (1.6.37-r1)
Executing busybox-1.33.1-r6.trigger
OK: 125 MiB in 75 packages
root@7fa92c6e12cd:/# python3
Python 3.9.5 (default, Nov 24 2021, 21:19:13)
[GCC 10.3.1 20210424] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from PIL import features
>>> features.get_supported()
['pil', 'libjpeg_turbo', 'jpg', 'zlib']
>>>
it appears that if libwep-tools is missing from the runtime environment (even though it was compiled with it) then it just doesn't "have" that feature.
from docker-mylar3.
That's good to know. Thanks for testing. I'll add it to build deps.
We had that issue with numpy. After we built numpy with support for blas (optional dep), it required blas runtime and broke a bunch of images.
from docker-mylar3.
Related Issues (10)
- Failing to Post-Process HOT 19
- Fresh install of Mylar3 fails to add any items HOT 4
- v0.5.9.5-ls37 fails to start HOT 14
- Comic says "snatched" and never finishes processing. HOT 9
- sqlite3.IntegrityError: UNIQUE constraint failed: provider_searches.id HOT 4
- [BUG] Can't enable HTTPS, missing package `pyOpenSSL` HOT 5
- [BUG] ModuleNotFoundError: No module named 'requests' HOT 5
- WQhat causes this? HOT 4
- [BUG] <title>Errno 13 trying to add new comics HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from docker-mylar3.