Suppose this wheel:
M Filemode Length Date Time File
- ---------- -------- ----------- -------- -------------------------------------------
-rw-rw-r-- 1358 26-Sep-2018 21:08:40 azure/common/__init__.py
-rw-rw-r-- 327 26-Sep-2018 21:08:40 azure/common/_version.py
-rw-rw-r-- 8737 26-Sep-2018 21:08:40 azure/common/client_factory.py
-rw-rw-r-- 755 26-Sep-2018 21:08:40 azure/common/cloud.py
-rw-rw-r-- 2479 26-Sep-2018 21:08:40 azure/common/credentials.py
-rw-rw-r-- 805 26-Sep-2018 21:08:40 azure/common/exceptions.py
-rw-rw-r-- 6079 26-Sep-2018 21:08:40 azure/profiles/__init__.py
-rw-rw-r-- 3943 26-Sep-2018 21:08:40 azure/profiles/multiapiclient.py
-rw-rw-r-- 6 26-Sep-2018 21:21:54 azure_common-1.1.16.dist-info/top_level.txt
-rw-rw-r-- 110 26-Sep-2018 21:21:54 azure_common-1.1.16.dist-info/WHEEL
-rw-rw-r-- 3805 26-Sep-2018 21:21:54 azure_common-1.1.16.dist-info/METADATA
-rw-rw-r-- 997 26-Sep-2018 21:21:54 azure_common-1.1.16.dist-info/RECORD
- ---------- -------- ----------- -------- -------------------------------------------
29401 12 files
It has three different packages in it:
- azure.common
- azure.profiles
- azure_common
All great names, and great layout. Also, a lot of greatness of mind that unmistakably went into engineering this miracle of modern software engineering.
This wheel is distributed by the name azure-common
. So, when you depend on in in setup.py
like this:
setup(
...
install_requires=['azure-common'],
...
)
You will only get azure_common
package installed. Maybe. I don't really know, it seems so, but few times that I tried it seemed to only install azure.common
, or maybe I eyeballed it... It's really hard to follow all the manipulations setuptools does on a package.
Hence the question: how can I force setuptools
into installing all packages found in this kind of wheel? Also, the order is important because this garbage needs to be installed some of the times with other packages which also provide azure.something
packages which may overwrite the stuff in azure
directory. So, Ideally, I'd also like to control in which order install_requires
dependencies are processed.
This is where this started: How to specify bracket dependencies in setup.py?