I am Data Scientist and I have a problem with setting of versions modules like Keras, Tensorflow PyTorch, etc. Although I am using tools like virtuaenv or conda, my code isn't cross-platform, version of modules from mac don't fit at windows and I spending a lot of time to the handling of infinity number of problems. Docker isn't helping every time, because sometimes I have to send code to my client, which is non-technical(very weak at CS at all).

The main question is: is the way/tool/software/anything which supports handling dependencies of modules on various platforms?


Python is notoriously painful when it comes to dependency and version management.

I think its your job to make a portable application, and there are usually methods to do so (even if they boil down to ugly branching logic based on the host OS type/etc). Most of the time, you can avoid OS specific things with some effort though.

In terms of deploying code to clients, I would recommend looking at tools that bundle your code into a stand-alone application (pyinstaller, py2app, etc). If you can build a standalone app for your clients for each OS, you won't have to worry about what is on their system (python versions, docker, etc).

  • " think its your job to make a portable application" - yes, it's my job, but I am looking for tool/method to support process. "stand-alone application (pyinstaller, py2app, etc)" - not an option, sometimes I have to send only code. "if you can build a standalone app for your clients for each OS....." - you missing the point, I can make everything using docker/virtualenv etc but sometimes its not enough
    – fuwiak
    Apr 6 '20 at 8:34
  • 2
    @fuwiak With the premise you put up, you cannot solve your problems.
    – M_dk
    Apr 6 '20 at 9:58
  • Why would you send “only code“ to a non technical client that can’t run docker? Seems a little catch 22. Maybe send them scripts that “wrap” docker so they don’t have to understand it at least? Docker is one of the only good solutions here unfortunately. Also, maybe just change to a saas service you can share as a platform? Databricks or something would ensure a consistent run environment. There are also more specialized tools like safe maker but I don’t have experience in those specifically. Apr 6 '20 at 11:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.