A few hours ago, all of our builds started failing because the command pip3 install azure was failing. It seems that it's trying to install futures even though this is Python 3. We haven't changed anything about our build process. This just randomly started. I unfortunately don't have any more information than this. Here are the logs:
Collecting azure
Downloading https://files.pythonhosted.org/packages/b6/47/36fa01a6ab4b6b840bb343719a538881db5f5e7af44196a20b72cdf0fab1/azure-3.0.0-py2.py3-none-any.whl
Collecting azure-servicefabric~=6.1.2.9 (from azure)
Downloading https://files.pythonhosted.org/packages/08/62/029ae2210acaf6243855e12bc0bf72e547c8a45760d4912aee75f713d569/azure_servicefabric-6.1.2.9-py2.py3-none-any.whl (384kB)
Collecting azure-storage-file~=1.1 (from azure)
Downloading https://files.pythonhosted.org/packages/e9/2b/7d365610e5e303def65d54499b0dc24b66531b94254f26bf27a142485a5f/azure_storage_file-1.1.0-py2.py3-none-any.whl
Collecting azure-graphrbac~=0.40.0 (from azure)
Downloading https://files.pythonhosted.org/packages/89/0a/29f7e2914033e2536026b8f0d7f8deb1edda68c9a93ce4757b2b1e39568b/azure_graphrbac-0.40.0-py2.py3-none-any.whl (63kB)
Collecting azure-cosmosdb-table~=1.0 (from azure)
Downloading https://files.pythonhosted.org/packages/a8/51/2435d35ad9443ec3b65d3b9a82b05cd583df5de277c70771695771edee62/azure_cosmosdb_table-1.0.2-py2.py3-none-any.whl (84kB)
Collecting azure-datalake-store~=0.0.18 (from azure)
Downloading https://files.pythonhosted.org/packages/c5/3c/6a93daed80af56c11c673b2055a039d2fa24375b84a113fae5d7764c4e59/azure_datalake_store-0.0.19-py2.py3-none-any.whl (50kB)
Collecting azure-storage-queue~=1.1 (from azure)
Downloading https://files.pythonhosted.org/packages/7b/a6/4b634664725a15009e5309c4c67aa900775b8f28cb17e08deef12a1fe5f4/azure_storage_queue-1.1.0-py2.py3-none-any.whl
Collecting azure-keyvault~=0.3.7 (from azure)
Downloading https://files.pythonhosted.org/packages/7e/f7/1e186b391b6095037c6d45d23ac76b4e9cc4f6c23755a78ca56fc39fad00/azure_keyvault-0.3.7-py2.py3-none-any.whl (100kB)
Collecting azure-servicemanagement-legacy~=0.20.6 (from azure)
Downloading https://files.pythonhosted.org/packages/a3/2b/0813d459df7ec04bb8c6a250882ee88b672a5f8d16a237978c89436a053e/azure_servicemanagement_legacy-0.20.6-py2.py3-none-any.whl (78kB)
Collecting azure-eventgrid~=0.1.0 (from azure)
Downloading https://files.pythonhosted.org/packages/47/a0/4cbbaebc96fdd83ca7afbe63a546f37ab86260a9ad1b3df361cea9ed594e/azure_eventgrid-0.1.0-py2.py3-none-any.whl
Collecting azure-storage-blob~=1.1 (from azure)
Downloading https://files.pythonhosted.org/packages/bb/c5/eb29c445c2e1bb1aead35c42e0b303dc52df2dfd6579c8917be0c8a7cc47/azure_storage_blob-1.1.0-py2.py3-none-any.whl (75kB)
Collecting azure-servicebus~=0.21.1 (from azure)
Downloading https://files.pythonhosted.org/packages/b8/de/47c0df32b57512ac9640ba239c7eeca22cb908bd8b645235729ec4f37196/azure_servicebus-0.21.1-py2.py3-none-any.whl
Collecting azure-mgmt~=2.0 (from azure)
Downloading https://files.pythonhosted.org/packages/f2/b4/0e9ccf1623f10c1d4bc84a6cb9f29121dc0ccf2d0ba0e2c9421cb1ec9131/azure_mgmt-2.0.0-py2.py3-none-any.whl
Collecting azure-batch~=4.0 (from azure)
Downloading https://files.pythonhosted.org/packages/b1/fa/1053b5dcd88e5de8e8cd70a4d7189ffad037542963ea86b518deb612c498/azure_batch-4.1.3-py2.py3-none-any.whl (314kB)
Collecting azure-common~=1.1 (from azure-servicefabric~=6.1.2.9->azure)
Downloading https://files.pythonhosted.org/packages/97/3b/2c7cda25382c3bb566008c5c8f8aa28663fd15a80a6204c76ae0035de107/azure_common-1.1.11-py2.py3-none-any.whl
Collecting msrest<2.0.0,>=0.4.26 (from azure-servicefabric~=6.1.2.9->azure)
Downloading https://files.pythonhosted.org/packages/e1/db/b4b8e0388ad7f100d2ec7c18dbcdfa3d86a1f42b052009ceed223aef7cbd/msrest-0.4.29-py2.py3-none-any.whl (41kB)
Collecting azure-nspkg>=2.0.0 (from azure-servicefabric~=6.1.2.9->azure)
Downloading https://files.pythonhosted.org/packages/cd/a0/76ca6659ae9afd7567fdbb5b9c85e9c9a0b48238cfcacd92525484408f66/azure_nspkg-2.0.0-py2.py3-none-any.whl
Collecting azure-storage-nspkg>=2.0.0 (from azure-storage-file~=1.1->azure)
Downloading https://files.pythonhosted.org/packages/b1/e9/0a11f4feefb9c4c2f7e30d4d448e15b32df3adabe370be70aaf4278fbb52/azure_storage_nspkg-3.0.0-py2.py3-none-any.whl
Collecting azure-storage-common<1.2.0,>=1.1.0 (from azure-storage-file~=1.1->azure)
Downloading https://files.pythonhosted.org/packages/3b/c6/31394ea86134bcfbff5dceb31d7ccde9e9150d7b7b6f4f1563acaaabcd24/azure_storage_common-1.1.0-py2.py3-none-any.whl (46kB)
Collecting msrestazure<2.0.0,>=0.4.20 (from azure-graphrbac~=0.40.0->azure)
Downloading https://files.pythonhosted.org/packages/6b/6d/c921c5bb35efb2086d7b127c538d2ccfc6c1c42b2a8bb4dc7b2d5e0280d6/msrestazure-0.4.29-py2.py3-none-any.whl
Collecting futures (from azure-cosmosdb-table~=1.0->azure)
Downloading https://files.pythonhosted.org/packages/4a/f4/418e844d868e34638486732417fb82b05031910059d88b86aaea9c70f699/futures-3.1.2.tar.gz
Complete output from command python setup.py egg_info:
This backport is meant only for Python 2.
It does not work on Python 3, and Python 3 users do not need it as the concurrent.futures package is available in the standard library.
For projects that work on both Python 2 and 3, the dependency needs to be conditional on the Python version, like so:
extras_require={':python_version == "2.7"': ['futures']}
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/pip-install-a_javsne/futures/
Pip version: 10.0.1
Python version: 3.6.5
Operating System: macOS High Sierra
Diving a little deeper, it seems that the problem is with the azure-cosmosdb-table package. However, in their setup script they have:
install_requires=[
'azure-common>=1.1.5',
'azure-storage-common>=1.1.0,<1.2.0',
'cryptography',
'python-dateutil',
'requests',
] + (['futures'] if sys.version_info < (3, 0) else []),
So it shouldn't be trying at all, unless it's the wrong version of Python? Duplicated this ticket there just in case someone responds there first: https://github.com/Azure/azure-cosmosdb-python/issues/24
Same here with me. Our Travis CI is failing due to this same issue.
Calling out @rgardler FYI.
This statement causes the wheel to end up with an unconditional requirement for futures if built with Python < 3:
+ (['futures'] if sys.version_info < (3, 0) else []),
Replacing that with:
, extras_require={
':python_version == "2.7"': ['futures']
},
will cause the condition to be properly reflected in the meta files inside the wheel that hold requirements.
Edit:
There's apparently newer syntax for that, straight from futures readme
```
setup(
...
install_requires={
'futures; python_version == "2.7"'
}
)
````
Why did it suddenly start failing though? They haven't had any changes in months?
https://github.com/agronholm/pythonfutures/issues/83
Started breaking because ^
+1
Hi,
I'll keep this issue open until someone from CosmosDB answer in the initial repo, but there is nothing I can do myself :(. The azure bundle package is not the initial root of the issue. The right fix is already in a PR:
https://github.com/Azure/azure-cosmosdb-python/pull/23
In the meantime, if you don't need CosmosDB package, change your dependency to rely on the services you need (e.g. azure-mgmt-compute, etc.). It will install faster (less packages) and will be more reliable.
Thanks much @lmazuel for your following up on this. I know it's a dumb question, but could you recommend what specific dependency I might need for our project's Travis CI? All we need is to create a resource group and create/delete an ARM template deployment, and yet we are installing the whole Azure Python SDK (see https://github.com/Azure/Moodle/blob/master/.travis.yml#L18), so facing this issue.
a resource group and create/delete an ARM template deployment,
Will be azure-mgmt-resource and that's it :)
Closing the issue, since the futures guy removed the problematic release 3.1.2.
Honestly, the release 3.1.2 wasn't problematic, people needs to use the Python dependency system correctly. But at least he was kind enough to unlock people.