title: Is it possible to install only certain subpackages of a python package via pip?
body: <p>I have several python services <code>foo</code>, <code>bar</code>, and <code>baz</code> which are all related but distinct, developed under an umbrella initiative we'll call <code>platform</code>. In other words, a single workflow might start off using <code>foo</code>, then feed that output into a process that uses <code>bar</code>, and then into <code>baz</code>, while a second workflow might only benefit from using <code>foo</code>.</p>
  <p>These could be individually packaged so that an end user could <code>pip install foo</code>, <code>pip install bar</code>, etc.</p>
  <p>It might make sense to instead create a single package so an end user could <code>pip install platform</code>, then do something like <code>from platform.services import foo</code>. This could also improve development of these services as it could improve code sharing. However, if these components end up be large, a workflow that only intends to use <code>foo</code> might not want the overhead of also installing <code>bar</code> and <code>baz</code>. Is it possible to create a package such that someone could do something like <code>pip install platform.services.foo</code>?</p>
  <p>Even if that were possible, is that poor design? Is it better to just have all these services as separate packages? Having an umbrella package like this would greatly improve the sense of cohesion across the various components as well as reinforce the (for lack of better term) brand that is <code>platform</code>.</p>