Coder Social home page Coder Social logo

Comments (12)

almarklein avatar almarklein commented on April 30, 2024

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.

blink1073 avatar blink1073 commented on April 30, 2024

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.

sametmax avatar sametmax commented on April 30, 2024

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 :

https://pythonhosted.org/setuptools/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies

from imageio.

almarklein avatar almarklein commented on April 30, 2024

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.

blink1073 avatar blink1073 commented on April 30, 2024

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.

almarklein avatar almarklein commented on April 30, 2024

Now I am confused :) if you can download that file by hand, why can imageio not download it for you automatically?

from imageio.

blink1073 avatar blink1073 commented on April 30, 2024

Portable harddrives work as long as the installation does not have a dependency trail.

from imageio.

almarklein avatar almarklein commented on April 30, 2024

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.

ghisvail avatar ghisvail commented on April 30, 2024

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.

almarklein avatar almarklein commented on April 30, 2024

@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.

almarklein avatar almarklein commented on April 30, 2024

See #45

from imageio.

blink1073 avatar blink1073 commented on April 30, 2024

@almarklein, looks good to me (just having viewed the diff)

from imageio.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.