Azure / azure-data-lake-store-python

Microsoft Azure Data Lake Store Filesystem Library for Python
MIT License
69 stars 70 forks source link

msrest ImportError when importing azure.common.credentials #220

Closed jmillxyz closed 6 years ago

jmillxyz commented 6 years ago

Description

Regression in v0.0.22 -- we're importing it as a part of azure==3.0.0

    from azure.common import credentials as azcreds
.tox/py27/lib/python2.7/site-packages/azure/common/credentials.py:58: in <module>
    raise ImportError("You need to install 'msrest' to use this feature")
E   ImportError: You need to install 'msrest' to use this feature

The same test passes in v0.0.19 (tried 0.0.20 and 0.0.21 but they're not released).


Reproduction Steps

$ pip install azure==3.0.0
$ python
> from azure.common import credentials

Environment summary

SDK Version: What version of the SDK are you using? (pip show azure-datalake-store) Answer here: 0.0.22

Python Version: What Python version are you using? Is it 64-bit or 32-bit?
Answer here: 2.7.12, 64-bit

OS Version: What OS and version are you using?
Answer here: Ubuntu 14.04.05 LTS

Shell Type: What shell are you using? (e.g. bash, cmd.exe, Bash on Windows)
Answer here: bash

lmazuel commented 6 years ago

Hi @jondelmil I think your reproduction steps are incorrect, if you install "azure==3.0.0" there is no way "msrest" is not installed in the process. It's just impossible. However, if you install only "azure-datalake-store", yes "msrest" is not installed anymore. But you use "azure-common"; and "azure-common" was never a dependency of "azure-datalake-store", so at some point you installed manually "azure-common". You made an error in your dependency declaration if you relied on "azure-datalake-store" to install "msrest" in order to use "azure-common". If you need "azure-common" for a project and credentials, you must either install "msrest" manually as described in the error message, or rely on a package that needs "azure-common" and will install "msrest" correctly. Thanks,

lmazuel commented 6 years ago

Since everything is impossible until it's not, I still tried to reproduce it anyway and wasn't able to, as expected.

> py -3.6 -m venv TestAzure >.\TestAzure\Scripts\activate (TestAzure) > pip install azure==3.0.0 Collecting azure==3.0.0 blablabla Successfully installed PyJWT-1.6.4 adal-1.0.1 asn1crypto-0.24.0 azure-3.0.0 azure-batch-4.1.3 azure-common-1.1.12 azure-cosmosdb-nspkg-2.0.2 azure-cosmosdb-table-1.0.3 azure-datalake-store-0.0.22 azure-eventgrid-0.1.0 azure-graphrbac-0.40.0 azure-keyvault-0.3.7 azure-mgmt-2.0.0 azure-mgmt-advisor-1.0.1 azure-mgmt-applicationinsights-0.1.1 azure-mgmt-authorization-0.30.0 azure-mgmt-batch-5.0.1 azure-mgmt-batchai-0.2.0 azure-mgmt-billing-0.1.0 azure-mgmt-cdn-2.0.0 azure-mgmt-cognitiveservices-2.0.0 azure-mgmt-commerce-1.0.1 azure-mgmt-compute-3.0.1 azure-mgmt-consumption-2.0.0 azure-mgmt-containerinstance-0.3.1 azure-mgmt-containerregistry-1.0.1 azure-mgmt-containerservice-3.0.1 azure-mgmt-cosmosdb-0.3.1 azure-mgmt-datafactory-0.4.0 azure-mgmt-datalake-analytics-0.3.0 azure-mgmt-datalake-nspkg-2.0.0 azure-mgmt-datalake-store-0.3.0 azure-mgmt-devtestlabs-2.2.0 azure-mgmt-dns-1.2.0 azure-mgmt-eventgrid-0.4.0 azure-mgmt-eventhub-1.2.0 azure-mgmt-hanaonazure-0.1.1 azure-mgmt-iothub-0.4.0 azure-mgmt-iothubprovisioningservices-0.1.0 azure-mgmt-keyvault-0.40.0 azure-mgmt-loganalytics-0.1.0 azure-mgmt-logic-2.1.0 azure-mgmt-machinelearningcompute-0.4.1 azure-mgmt-managementpartner-0.1.0 azure-mgmt-marketplaceordering-0.1.0 azure-mgmt-media-0.2.0 azure-mgmt-monitor-0.4.0 azure-mgmt-msi-0.1.0 azure-mgmt-network-1.7.1 azure-mgmt-notificationhubs-1.0.0 azure-mgmt-nspkg-2.0.0 azure-mgmt-powerbiembedded-1.0.0 azure-mgmt-rdbms-0.1.0 azure-mgmt-recoveryservices-0.2.0 azure-mgmt-recoveryservicesbackup-0.1.1 azure-mgmt-redis-5.0.0 azure-mgmt-relay-0.1.0 azure-mgmt-reservations-0.1.0 azure-mgmt-resource-1.2.2 azure-mgmt-scheduler-1.1.3 azure-mgmt-search-1.0.0 azure-mgmt-servermanager-1.2.0 azure-mgmt-servicebus-0.4.0 azure-mgmt-servicefabric-0.1.0 azure-mgmt-sql-0.8.6 azure-mgmt-storage-1.5.0 azure-mgmt-subscription-0.1.0 azure-mgmt-trafficmanager-0.40.0 azure-mgmt-web-0.34.1 azure-nspkg-2.0.0 azure-servicebus-0.21.1 azure-servicefabric-6.1.2.9 azure-servicemanagement-legacy-0.20.6 azure-storage-blob-1.1.0 azure-storage-common-1.1.0 azure-storage-file-1.1.0 azure-storage-nspkg-3.0.0 azure-storage-queue-1.1.0 certifi-2018.4.16 cffi-1.11.5 chardet-3.0.4 cryptography-2.2.2 entrypoints-0.2.3 futures-3.1.1 idna-2.7 isodate-0.6.0 keyring-12.2.1 msrest-0.5.0 msrestazure-0.4.32 oauthlib-2.1.0 pycparser-2.18 python-dateutil-2.7.3 pywin32-ctypes-0.1.2 requests-2.19.0 requests-oauthlib-1.0.0 six-1.11.0 urllib3-1.23 > python -c "from azure.common import credentials as azcreds" > python -c "import msrest"

milanchandna commented 6 years ago

@jondelmil Have you followed what Laurent is mentioning? Still facing dependency issues?

milanchandna commented 6 years ago

Considering the thread stale, closing this issue for now. Please re-open if this still doesn't work for you.