Answers: <p>Python is notoriously painful when it comes to dependency and version management.</p>
  
  <p>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.</p>
  
  <p>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).</p>
  
Answers: CC BY-SA 4.0
Answers: 2020-04-06T08:34:44.630Z
Answers: " 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
Answers: fuwiak
Answers: CC BY-SA 4.0
Answers: 2020-04-06T09:58:35.043Z
Answers: @fuwiak With the premise you put up, you cannot solve your problems.
Answers: M_dk
Answers: CC BY-SA 4.0
Answers: 2020-04-06T11:38:23.000Z
Answers: 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.
Answers: John Humphreys
Answers: CC BY-SA 4.0
Answers: 2020-04-06T02:31:44.813Z
Answers: 2020-04-06T02:31:44.813Z
Answers: John Humphreys
Body: <p>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 <strong>virtuaenv</strong> or <strong>conda</strong>, 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. <strong>Docker</strong> 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). </p>
  
  <p>The main question is: <strong>is the way/tool/software/anything</strong> which supports handling dependencies of modules on <strong>various</strong> platforms?</p>
  
Tags: <docker><python>
Title: Tool or way to support handling dependencies of modules in various platforms (for machine learning in Python)
UserDisplayName: fuwiak
ThreadText: # Tool or way to support handling dependencies of modules in various platforms (for machine learning in Python)
  
  (Asked by: username_0 on 2020-04-05)
  
  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?
  
  **Tags:** docker, python
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2020-04-06. Score: 1
  
  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).
  
  > **Comments:**
  > **username_0**: " 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  
  > **username_2**: @username_0 With the premise you put up, you cannot solve your problems.  
  > **username_1**: 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.  
  
  ---
  
  