Comments (12)
Just to kick it off. Here are some options:
- Download libs at runtime (current solution)
- Download libs at install time (apparently also not very robust)
- Distribute platform specific lib with dist package. This means we'd have to provide a dist package for each platform.
- Provide two dist packages. One with source only, and one that contains the lib for all platforms, for those who cannot rely on an Internet connection. We definitely don't want to do this for ffmpeg.
Question:
- For the cases with no Internet connection, would it be acceptable for some plugins not to work? For ffmpeg we can also use the system installed.
from imageio.
I'd vote to have a source-only version, and wheels for 64 bit Linux, Windows, and OSX with just the freeimage support. Rather that auto-downloading, it would be nice to present the user with the option of whether to download an external lib, perhaps as a simple Tk dialog. I think partial functionality is fine in this case given the nature of the library.
from imageio.
You can make plugins optionals.
pip install imageio (or python setup.py) would install the simple version.
pip install imageio[pluginname, pluginname] install imageio with the desired plugins.
You can use extras_require for this :
from imageio.
I'd vote to have a source-only version, and wheels for 64 bit Linux, Windows, and OSX with just the freeimage support.
@blink1073 I've made some progress in this direction, but get into a problem: Wheel sees that imageio is pure Python and thus the resulting wheels get a name that indicates its cross-plaform. I've asked the wheel guys about a possible solution: https://bitbucket.org/pypa/wheel/issue/128
Another solution would be to pack the 64bit libs for osx/win/linux into a single cross-platform wheel. Together these 3 libs take up 12.8 MB. Not an ideal solution, but it might be acceptable if we do not find a solution for the above problem. WDYT?
from imageio.
Rather than bundled all together they could be made available for download on Github. In my experience as long as I could go download one file and install it in the lab, it would be doable.
from imageio.
Now I am confused :) if you can download that file by hand, why can imageio not download it for you automatically?
from imageio.
Portable harddrives work as long as the installation does not have a dependency trail.
from imageio.
Ah, right. Makes sense. Nevertheless, shipping freeimage in the dist distribution is still something wanted for e.g. Debian building (#40). So I will first try some more in that direction ...
from imageio.
FYI, freeimage is available in Debian [1]. But this issue summarizes the problem I faced with the Debian package, i.e. the need to perform a complete build / install / test / clean of the package, without relying on downloading any external resources.
[1] https://packages.debian.org/source/sid/libs/freeimage
from imageio.
@blink1073 and @ghisvail I have now implemented an approach that creates additional platform-specific archives for pypi. An example: https://testpypi.python.org/pypi/imageio/1.0.0.9.7dev
Also there is python setup.py build_with_fi install
to download the freeimage library and some images required during testing at build-time.
Please let me know if this would cover your needs.
from imageio.
See #45
from imageio.
@almarklein, looks good to me (just having viewed the diff)
from imageio.
Related Issues (20)
- Transparency not working on gifs HOT 3
- test_8bit_with_16bit_depth fails on s390x (64 bit/big endian machine) HOT 2
- Question: loading TIFF as grayscale in v3 HOT 5
- New behavior of imageio.imsave HOT 5
- heif format / .heic image file support HOT 2
- imread on S3 stream fails with PIL.UnidentifiedImageError HOT 2
- ImageResource type should support bytes HOT 1
- [Bug Report] imageio v3 crashed when read hdr images after a certain number of times
- Link to the documentation in the README is broken HOT 1
- imread() fails on HTTPS, code example from documentation HOT 3
- 8bit grayscale now loaded as RGB HOT 5
- 2.31.4: documentation build fails HOT 1
- iio pyav plugin crash along with python when handling a webm file, setting format to rgba HOT 2
- It does not seem to support avif image format HOT 1
- Support for Pillow v10.1 (re: setting `image.mode`) HOT 8
- Inconsistency when reading floating point .exr image file HOT 3
- imageio.imread changes the values of graycale pixels, try to read 12-bit png grayscale image. HOT 8
- super slow video reads HOT 6
- imageio v2.33.0 requieres Pillow>=9.1.0 for GIFs HOT 1
- Trouble using freeimage plugin on MacOS arm64 HOT 2
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 imageio.