Azure-cli: `pip install --upgrade azure-cli` fails on Cygwin due to psutil

Created on 15 May 2019  Â·  70Comments  Â·  Source: Azure/azure-cli

Describe the bug
I tried to upgrade azure-cli from 2.0.31 to the latest (2.0.62 as of writing)

To Reproduce
pip install --upgrade azure-cli

Expected behavior
az should upgrade.

Environment summary
Windows 10
Cygwin (latest)

Additional context

Collecting psutil>=5.6.1 (from azure-cli-core==2.0.64->azure-cli)
  Using cached https://files.pythonhosted.org/packages/c6/c1/beed5e4eaa1345901b595048fab1c85aee647ea0fc02d9e8bf9aceb81078/psutil-5.6.2.tar.gz
    ERROR: Complete output from command python setup.py egg_info:
    ERROR: platform cygwin is not supported
    ----------------------------------------
ERROR: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-NwRvbi/psutil/
Feedback Workaround

Most helpful comment

@adewaleo, the psutil was pulled in for the new az feedback, anyway we can find an alternative?

All 70 comments

@adewaleo, the psutil was pulled in for the new az feedback, anyway we can find an alternative?

~2.0.65 seems to install under Cygwin now, but has problems running everything:~
image

~Should I open a new issue for this? Thanks.~

Weirdly enough I uninstalled all traces of the azure-cli (pip list | awk '{print $1}' | grep '^azure' | xargs pip uninstall) and tried re-installing and 2.0.65 complains about psutil again... 🤔

Also it seems I can't even install an older version any more as the ps-util breaks that.

Collecting psutil>=5.6.1 (from azure-cli-core->azure-cli==2.0.31)
  Using cached https://files.pythonhosted.org/packages/c6/c1/beed5e4eaa1345901b595048fab1c85aee647ea0fc02d9e8bf9aceb81078/psutil-5.6.2.tar.gz

@ElvenSpellmaker, Yes, unfortunately it turns out that psutil does not support cygwin yet. This is sad as it makes it very easy for az feedback to detect the shell the cli command was executed in.

This sprint, I will remove it as a dependency and try to find other ways to detect what shell a user is running. I am not sure how to detect for certain that a command was executed from powershell aside from checking that the grandparent process was indeed powershell.exe

For now there are two workarounds that come to mind:

  • Install version 2.0.60 of the CLI. I believe az feedback was updated around 2.0.61 or so
  • Install the azure-cli without the psutil dependencies. An approach could be the following:

    • in a non cygwin environment run pip install azure-cli.

    • run pip freeze > requirements.txt

    • remove the psutil dependency from the file

    • pip install -r requirements.txt

Unfortunately as I've stated above, it's a dependency that tries to install the psutil and so I can't install an older version even! =(

Unfortunately as I've stated above, it's a dependency that tries to install the psutil and so I can't install an older version even! =(

installing 2.0.50 should solve the problem as a work around. az feedback only started using psutil recently. We didn't always have this dependency.

I was wrong to ask you to install 2.0.62, the change was made 4 or so sprints ago.

Unfortunately installing older versions has the same effect, it always tries to pull in psutil

Requirement already satisfied: futures; python_version < "3.0" in /usr/lib/python2.7/site-packages (from azure-cli-core->azure-cli==2.0.50) (3.2.0)
Collecting psutil>=5.6.1 (from azure-cli-core->azure-cli==2.0.50)
  Using cached https://files.pythonhosted.org/packages/c6/c1/beed5e4eaa1345901b595048fab1c85aee647ea0fc02d9e8bf9aceb81078/psutil-5.6.2.tar.gz
    ERROR: Complete output from command python setup.py egg_info:
    ERROR: platform cygwin is not supported
    ----------------------------------------
ERROR: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-mhvWZc/psutil/

Not the same error, but related to psutil with a Docker build regardless of using 2.0.46 or 2.0.65
https://dev.azure.com/csedevops/MLOps/_build/results?buildId=757 (2.0.46)
https://dev.azure.com/csedevops/MLOps/_build/results?buildId=760 (2.0.65)

This is there because psutil requires gcc to be present to compile the psutil binary. After I install gcc it completes ok. IMO there should be no requirement for gcc to pip install azure-cli

  building 'psutil._psutil_linux' extension
  creating build/temp.linux-x86_64-3.7
  creating build/temp.linux-x86_64-3.7/psutil
  gcc -pthread -B /usr/local/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=562 -DPSUTIL_LINUX=1 -DPSUTIL_ETHTOOL_MISSING_TYPES=1 -I/usr/local/include/python3.7m -c psutil/_psutil_common.c -o build/temp.linux-x86_64-3.7/psutil/_psutil_common.o
  unable to execute 'gcc': No such file or directory
  error: command 'gcc' failed with exit status 1

  ----------------------------------------
  Failed building wheel for psutil‌
  Running setup.py clean for psutil‌
Successfully built vsts-cd-manager sshtunnel pydocumentdb pyyaml pyperclip tabulate antlr4-python3-runtime
Failed to build psutil

Not the same error, but related to psutil with a Docker build regardless of using 2.0.46 or 2.0.65
https://dev.azure.com/csedevops/MLOps/_build/results?buildId=757 (2.0.46)
https://dev.azure.com/csedevops/MLOps/_build/results?buildId=760 (2.0.65)

  building 'psutil._psutil_linux' extension
  creating build/temp.linux-x86_64-3.7
  creating build/temp.linux-x86_64-3.7/psutil
  gcc -pthread -B /usr/local/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=562 -DPSUTIL_LINUX=1 -DPSUTIL_ETHTOOL_MISSING_TYPES=1 -I/usr/local/include/python3.7m -c psutil/_psutil_common.c -o build/temp.linux-x86_64-3.7/psutil/_psutil_common.o
  unable to execute 'gcc': No such file or directory
  error: command 'gcc' failed with exit status 1

  ----------------------------------------
  Failed building wheel for psutil‌
  Running setup.py clean for psutil‌
Successfully built vsts-cd-manager sshtunnel pydocumentdb pyyaml pyperclip tabulate antlr4-python3-runtime
Failed to build psutil

What docker file are you using to build the docker image? Are you using the one in our repo?

There was an added dependency when psutil was aded to our repo.

@dtzar

https://hub.docker.com/r/dtzar/conda3mlops

In our dockerfile, I had to add the linux-headers dependency for psutil to work. There might be a similar case where you need to include (a dependency) with gcc in your docker file

see the following for more info: https://github.com/giampaolo/psutil/issues/1143

Hey @ElvenSpellmaker can you try running pip install -r requirements.py3.windows.txt, but remove psutil's dependency from the file beforehand.

This should be a work around for cygwin. Psutil is only used in feedback. I could modify az feedback to not crash if psutil is not installed.

Let me know if it works

I will be closing this issue as there is a workaround

@adewaleo Hey, sorry for my late response, I get this error when using the requirements for Python 2: image

I'm wondering if I can just remove that too

If I remove the pywin32 I get a psutil error again:
image

@ElvenSpellmaker Did you remove the psutil dependency? Also are you installing the CLI in a virtual env?

@adewaleo Yes I removed the dependency, but something else in the requirements adds it back in at runtime

that's strange @ElvenSpellmaker

Could you share with us the content of your updated requirements.txt file (after removing the psutil dependency) and the command you run. Also I will encourage you to use a new / clean virtual environment.

Do you mean runtime in the sense of running the CLI or in the sense of installing it with pip install?

@adewaleo Of course I can. =)

adal==1.2.1
antlr4-python3-runtime==4.7.2
applicationinsights==0.11.7
argcomplete==1.10.0
asn1crypto==0.24.0
azure-batch==8.0.0
azure-cli==2.0.75
azure-cli-command-modules-nspkg==2.0.3
azure-cli-core==2.0.75
azure-cli-nspkg==3.0.4
azure-common==1.1.22
azure-cosmos==3.1.0
azure-datalake-store==0.0.45
azure-functions-devops-build==0.0.22
azure-graphrbac==0.60.0
azure-keyvault==1.1.0
azure-mgmt-advisor==2.0.1
azure-mgmt-apimanagement==0.1.0
azure-mgmt-applicationinsights==0.1.1
azure-mgmt-authorization==0.52.0
azure-mgmt-batch==7.0.0
azure-mgmt-batchai==2.0.0
azure-mgmt-billing==0.2.0
azure-mgmt-botservice==0.2.0
azure-mgmt-cdn==3.1.0
azure-mgmt-cognitiveservices==5.0.0
azure-mgmt-compute==8.0.0
azure-mgmt-consumption==2.0.0
azure-mgmt-containerinstance==1.5.0
azure-mgmt-containerregistry==3.0.0rc7
azure-mgmt-containerservice==7.0.0
azure-mgmt-cosmosdb==0.8.0
azure-mgmt-datalake-analytics==0.2.1
azure-mgmt-datalake-nspkg==3.0.1
azure-mgmt-datalake-store==0.5.0
azure-mgmt-datamigration==0.1.0
azure-mgmt-deploymentmanager==0.1.0
azure-mgmt-devtestlabs==2.2.0
azure-mgmt-dns==2.1.0
azure-mgmt-eventgrid==2.2.0
azure-mgmt-eventhub==2.6.0
azure-mgmt-hdinsight==1.1.0
azure-mgmt-imagebuilder==0.2.1
azure-mgmt-iotcentral==1.0.0
azure-mgmt-iothub==0.8.2
azure-mgmt-iothubprovisioningservices==0.2.0
azure-mgmt-keyvault==1.1.0
azure-mgmt-kusto==0.3.0
azure-mgmt-loganalytics==0.2.0
azure-mgmt-managementgroups==0.2.0
azure-mgmt-maps==0.1.0
azure-mgmt-marketplaceordering==0.2.1
azure-mgmt-media==1.1.1
azure-mgmt-monitor==0.5.2
azure-mgmt-msi==0.2.0
azure-mgmt-netapp==0.6.0
azure-mgmt-network==7.0.0
azure-mgmt-nspkg==3.0.2
azure-mgmt-policyinsights==0.3.1
azure-mgmt-privatedns==0.1.0
azure-mgmt-rdbms==1.9.0
azure-mgmt-recoveryservices==0.4.0
azure-mgmt-recoveryservicesbackup==0.4.0
azure-mgmt-redis==6.0.0
azure-mgmt-relay==0.1.0
azure-mgmt-reservations==0.3.1
azure-mgmt-resource==4.0.0
azure-mgmt-search==2.1.0
azure-mgmt-security==0.1.0
azure-mgmt-servicebus==0.6.0
azure-mgmt-servicefabric==0.2.0
azure-mgmt-signalr==0.3.0
azure-mgmt-sql==0.13.0
azure-mgmt-sqlvirtualmachine==0.4.0
azure-mgmt-storage==5.0.0
azure-mgmt-trafficmanager==0.51.0
azure-mgmt-web==0.42.0
azure-multiapi-storage==0.2.4
azure-nspkg==3.0.2
azure-storage-blob==1.5.0
azure-storage-common==1.4.2
bcrypt==3.1.7
certifi==2019.6.16
cffi==1.12.3
chardet==3.0.4
colorama==0.4.1
cryptography==2.7
fabric==2.4.0
humanfriendly==4.18
idna==2.8
invoke==1.2.0
isodate==0.6.0
Jinja2==2.10.1
jmespath==0.9.4
jsmin==2.2.2
knack==0.6.3
MarkupSafe==1.1.1
mock==2.0.0
msrest==0.6.9
msrestazure==0.6.2
oauthlib==3.0.1
paramiko==2.6.0
pbr==5.3.1
portalocker==1.2.1
pycparser==2.19
pydocumentdb==2.3.3
Pygments==2.4.2
PyJWT==1.7.1
PyNaCl==1.3.0
pyOpenSSL==19.0.0
pypiwin32==223
pyreadline==2.1
python-dateutil==2.8.0
pytz==2019.1
PyYAML==5.1.1
requests==2.22.0
requests-oauthlib==1.2.0
scp==0.13.2
six==1.12.0
sshtunnel==0.1.5
tabulate==0.8.3
urllib3==1.25.3
vsts==0.1.25
vsts-cd-manager==1.0.2
wcwidth==0.1.7
websocket-client==0.56.0
xmltodict==0.12.0

I also removed pywin32 from the list as it complains there are no wheels for that.

And this is my output:

$ pip install -r azurecli-pipreqs.txt
Collecting adal==1.2.1
  Using cached https://files.pythonhosted.org/packages/00/72/53dce9e4f5d6c1aa57b8d408cb34dff1969ecbf10ab7e678f32c5e0e2397/adal-1.2.1-py2.py3-none-any.whl
Collecting antlr4-python3-runtime==4.7.2
  Using cached https://files.pythonhosted.org/packages/29/14/8ac135ec7cc9db3f768e2d032776718c6b23f74e63543f0974b4873500b2/antlr4-python3-runtime-4.7.2.tar.gz
Collecting applicationinsights==0.11.7
  Using cached https://files.pythonhosted.org/packages/e3/c8/7848a0dd85158930b859eb8be1e38fc76a91f0a040d491723ebb356d7358/applicationinsights-0.11.7-py2.py3-none-any.whl
Collecting argcomplete==1.10.0
  Using cached https://files.pythonhosted.org/packages/4d/82/f44c9661e479207348a979b1f6f063625d11dc4ca6256af053719bbb0124/argcomplete-1.10.0-py2.py3-none-any.whl
Collecting asn1crypto==0.24.0
  Using cached https://files.pythonhosted.org/packages/ea/cd/35485615f45f30a510576f1a56d1e0a7ad7bd8ab5ed7cdc600ef7cd06222/asn1crypto-0.24.0-py2.py3-none-any.whl
Collecting azure-batch==8.0.0
  Using cached https://files.pythonhosted.org/packages/e6/81/1787b8d36f3b90ef6c06fd47f27aaff248279e4c03856fba9c83b87c1ef7/azure_batch-8.0.0-py2.py3-none-any.whl
Collecting azure-cli==2.0.75
  Using cached https://files.pythonhosted.org/packages/b4/63/eceaef5654f21665b4108504c0fc5717aa9fc68c323c68d2115aefa9691e/azure_cli-2.0.75-py2.py3-none-any.whl
Collecting azure-cli-command-modules-nspkg==2.0.3
  Using cached https://files.pythonhosted.org/packages/98/f6/783d1fa330d5e14fa89bae5fd8e5554e11adf1662a1cbb7a65da38e12a33/azure_cli_command_modules_nspkg-2.0.3-py2.py3-none-any.whl
Collecting azure-cli-core==2.0.75
  Using cached https://files.pythonhosted.org/packages/e7/44/d76bcf4848cd81b0442091c9a9457f0ca1ec143987f8c3292da9a105177e/azure_cli_core-2.0.75-py2.py3-none-any.whl
Collecting azure-cli-nspkg==3.0.4
  Using cached https://files.pythonhosted.org/packages/86/79/57e09901b453ce18a13111cb72219b6bb05ca821dcb5c205380cf2a7edf2/azure_cli_nspkg-3.0.4-py2.py3-none-any.whl
Collecting azure-common==1.1.22
  Using cached https://files.pythonhosted.org/packages/e3/36/9946fa617f458f11766884c76c622810f4c111ee16c08eb8315e88330d66/azure_common-1.1.22-py2.py3-none-any.whl
Collecting azure-cosmos==3.1.0
  Using cached https://files.pythonhosted.org/packages/d5/ef/87bd5c7ea5fd448501fe74dd54fd4e148cb52423e681026390b72d1f49df/azure_cosmos-3.1.0-py3-none-any.whl
Collecting azure-datalake-store==0.0.45
  Using cached https://files.pythonhosted.org/packages/7d/34/8032f34cb6239ea8c0dfc73da11a80f54061915e8f9f62b5ed7349d4acfb/azure_datalake_store-0.0.45-py2.py3-none-any.whl
Collecting azure-functions-devops-build==0.0.22
  Using cached https://files.pythonhosted.org/packages/96/57/65ca02568edf21abbb0831dedb3f87b6c2164bd4188778865f27b8a05645/azure_functions_devops_build-0.0.22-py3-none-any.whl
Collecting azure-graphrbac==0.60.0
  Using cached https://files.pythonhosted.org/packages/bd/11/f78acb88061fbfb3678cb7f2c7d6ad73b69b08bc558aa56246e9ce0d9998/azure_graphrbac-0.60.0-py2.py3-none-any.whl
Collecting azure-keyvault==1.1.0
  Using cached https://files.pythonhosted.org/packages/80/37/e80f577570b32648c4b88c8c48a46501a4868ae4c8d905774fd02c2b01fc/azure_keyvault-1.1.0-py2.py3-none-any.whl
Collecting azure-mgmt-advisor==2.0.1
  Using cached https://files.pythonhosted.org/packages/12/52/5b8ff97a7056fd1d4458677e7628b81bb9c22013ec9a761e39d0e9d55498/azure_mgmt_advisor-2.0.1-py2.py3-none-any.whl
Collecting azure-mgmt-apimanagement==0.1.0
  Using cached https://files.pythonhosted.org/packages/af/50/6c514ad0850dbd371bdce481661cd4bbd61e569cc44478adf4dc92eeac3c/azure_mgmt_apimanagement-0.1.0-py2.py3-none-any.whl
Collecting azure-mgmt-applicationinsights==0.1.1
  Using cached https://files.pythonhosted.org/packages/30/61/1d95a5ef3a9119a0d375d8670129375515de20e20409612e9671c99bd19f/azure_mgmt_applicationinsights-0.1.1-py2.py3-none-any.whl
Collecting azure-mgmt-authorization==0.52.0
  Using cached https://files.pythonhosted.org/packages/6b/b2/c0d62a3a91c13641e09af294c13fe16929f88dc5902718388cd9b292217f/azure_mgmt_authorization-0.52.0-py2.py3-none-any.whl
Collecting azure-mgmt-batch==7.0.0
  Using cached https://files.pythonhosted.org/packages/55/eb/d02bc4b187b163f7f29b2780354f3fc752d9ae3b25a3b85ba9485c6b0c92/azure_mgmt_batch-7.0.0-py2.py3-none-any.whl
Collecting azure-mgmt-batchai==2.0.0
  Using cached https://files.pythonhosted.org/packages/d9/a5/ab796c2a490155c14f9ac4240724ca5c56723315d4dc753030712e6f2e80/azure_mgmt_batchai-2.0.0-py2.py3-none-any.whl
Collecting azure-mgmt-billing==0.2.0
  Using cached https://files.pythonhosted.org/packages/0f/24/5106287ea0f6562d965afb055e3c6c0da058f7844a70464e67bab56c6c4b/azure_mgmt_billing-0.2.0-py2.py3-none-any.whl
Collecting azure-mgmt-botservice==0.2.0
  Using cached https://files.pythonhosted.org/packages/93/36/c60c52101257bc30338993a38c1db0e33561e4361a1ba521f91476e845ab/azure_mgmt_botservice-0.2.0-py2.py3-none-any.whl
Collecting azure-mgmt-cdn==3.1.0
  Using cached https://files.pythonhosted.org/packages/97/bf/c41e8985b4ffaaad2baaded1fb7b113433ae2d30d65c1a8c226e72284b72/azure_mgmt_cdn-3.1.0-py2.py3-none-any.whl
Collecting azure-mgmt-cognitiveservices==5.0.0
  Using cached https://files.pythonhosted.org/packages/5d/d5/69bc1bac302704dc3e612347c5576c0a287a92a2ac3a5c0fc9bab0c83b9e/azure_mgmt_cognitiveservices-5.0.0-py2.py3-none-any.whl
Collecting azure-mgmt-compute==8.0.0
  Using cached https://files.pythonhosted.org/packages/24/47/1b9a640a272fe0008d17835384d2e747678db540d93a623e13c3ca26446e/azure_mgmt_compute-8.0.0-py2.py3-none-any.whl
Collecting azure-mgmt-consumption==2.0.0
  Using cached https://files.pythonhosted.org/packages/11/f4/2db9557494dfb17ff3edeae5726981143a7baace17df3712b189e343bd8c/azure_mgmt_consumption-2.0.0-py2.py3-none-any.whl
Collecting azure-mgmt-containerinstance==1.5.0
  Using cached https://files.pythonhosted.org/packages/fd/d1/d770050f20ad81b80f7eb41f89e1a5d841cf74bf41c7e1ff137c46f28a1e/azure_mgmt_containerinstance-1.5.0-py2.py3-none-any.whl
Collecting azure-mgmt-containerregistry==3.0.0rc7
  Using cached https://files.pythonhosted.org/packages/01/d5/9b36306dc35baf1557cc1ca56756b6774a054e0a74cdd5c8e9ac285c927c/azure_mgmt_containerregistry-3.0.0rc7-py2.py3-none-any.whl
Collecting azure-mgmt-containerservice==7.0.0
  Using cached https://files.pythonhosted.org/packages/b4/95/b4e8c622c5ee56e05822b6fbfde1d7e1cfaa8f7d4d92867d6fc25ecb8ae3/azure_mgmt_containerservice-7.0.0-py2.py3-none-any.whl
Collecting azure-mgmt-cosmosdb==0.8.0
  Using cached https://files.pythonhosted.org/packages/e4/bb/82f98bdcbb9f66de18fc3891f39cc8b0749ec92aa24e9249a02ca3e69b83/azure_mgmt_cosmosdb-0.8.0-py2.py3-none-any.whl
Collecting azure-mgmt-datalake-analytics==0.2.1
  Using cached https://files.pythonhosted.org/packages/b0/b9/4aafa00ce427d72f2da84c942ea5f2d0c636f5b1b94eee269bac3d498c13/azure_mgmt_datalake_analytics-0.2.1-py2.py3-none-any.whl
Collecting azure-mgmt-datalake-nspkg==3.0.1
  Using cached https://files.pythonhosted.org/packages/48/3d/c65a520d93448923a96784582a0deafaae096cb37b444ae5d63b57f0562d/azure_mgmt_datalake_nspkg-3.0.1-py3-none-any.whl
Collecting azure-mgmt-datalake-store==0.5.0
  Using cached https://files.pythonhosted.org/packages/ff/ac/5685cd06dc8b245bb6b894815764a14bd62245ba4579b45148682f510fdd/azure_mgmt_datalake_store-0.5.0-py2.py3-none-any.whl
Collecting azure-mgmt-datamigration==0.1.0
  Using cached https://files.pythonhosted.org/packages/a6/68/aba86e698f24f25f70d9ee2b15a2ca0d71b822932ace8ba96e5beb12efdd/azure_mgmt_datamigration-0.1.0-py2.py3-none-any.whl
Collecting azure-mgmt-deploymentmanager==0.1.0
  Using cached https://files.pythonhosted.org/packages/ea/46/b5bf56331e8d949a0c93c0f2cf37e92c418afafd93bbb3e6a7f4c3329b0f/azure_mgmt_deploymentmanager-0.1.0-py2.py3-none-any.whl
Collecting azure-mgmt-devtestlabs==2.2.0
  Using cached https://files.pythonhosted.org/packages/2f/93/a64abaede2fc6a52476af8ceab9cedb368c49e948d9385cbe7cd4ce5ffff/azure_mgmt_devtestlabs-2.2.0-py2.py3-none-any.whl
Collecting azure-mgmt-dns==2.1.0
  Using cached https://files.pythonhosted.org/packages/c7/d7/0f986a64b06db93cf29b76f9a188f5778eb959624a00ed6aedc335ee58d2/azure_mgmt_dns-2.1.0-py2.py3-none-any.whl
Collecting azure-mgmt-eventgrid==2.2.0
  Using cached https://files.pythonhosted.org/packages/f9/d4/57cc437d1a3ec82feadc86fbd6485a3cc3c198d8717c171045e6fb98dd6d/azure_mgmt_eventgrid-2.2.0-py2.py3-none-any.whl
Collecting azure-mgmt-eventhub==2.6.0
  Using cached https://files.pythonhosted.org/packages/5a/cb/3822bcfa815f894c86a27845ae4160c0169722598399234cd6f77bb82347/azure_mgmt_eventhub-2.6.0-py2.py3-none-any.whl
Collecting azure-mgmt-hdinsight==1.1.0
  Using cached https://files.pythonhosted.org/packages/49/78/a0722b88d3825b78ed09406b92bf36a0dd178085425ff2e869f6f10a068b/azure_mgmt_hdinsight-1.1.0-py2.py3-none-any.whl
Collecting azure-mgmt-imagebuilder==0.2.1
  Using cached https://files.pythonhosted.org/packages/02/04/09c44facee2a154b7cf624a735f03fac576d2d949cb091b7204d3d307f3d/azure_mgmt_imagebuilder-0.2.1-py2.py3-none-any.whl
Collecting azure-mgmt-iotcentral==1.0.0
  Using cached https://files.pythonhosted.org/packages/13/e9/dc0ffbe4739d66d504e4f118bfcc6f0b59d04cf6eb2e14172c21cb348feb/azure_mgmt_iotcentral-1.0.0-py2.py3-none-any.whl
Collecting azure-mgmt-iothub==0.8.2
  Using cached https://files.pythonhosted.org/packages/39/92/7258f22eff0849cb06572ab01db3da4c809cb915915b9922a249fcad18c8/azure_mgmt_iothub-0.8.2-py2.py3-none-any.whl
Collecting azure-mgmt-iothubprovisioningservices==0.2.0
  Using cached https://files.pythonhosted.org/packages/84/ce/3500c731a5c5b31028e662aa41bc45f75301834a0c03adeacfe7ef7bd86e/azure_mgmt_iothubprovisioningservices-0.2.0-py2.py3-none-any.whl
Collecting azure-mgmt-keyvault==1.1.0
  Using cached https://files.pythonhosted.org/packages/49/de/0d69aedae7c5f6428314640b65947203ab80409c12b5d4e66fb5b7a4182e/azure_mgmt_keyvault-1.1.0-py2.py3-none-any.whl
Collecting azure-mgmt-kusto==0.3.0
  Using cached https://files.pythonhosted.org/packages/d9/4f/4ef96c0bb0fec6eb7d0786a01f8f41851f10b0b26334992ba7e2b8a12c19/azure_mgmt_kusto-0.3.0-py2.py3-none-any.whl
Collecting azure-mgmt-loganalytics==0.2.0
  Using cached https://files.pythonhosted.org/packages/70/40/c9b77bf82916e963aa701fb396673f7ddc4cdab95524b6d2edf927b05630/azure_mgmt_loganalytics-0.2.0-py2.py3-none-any.whl
Collecting azure-mgmt-managementgroups==0.2.0
  Using cached https://files.pythonhosted.org/packages/95/e8/2bbe79c62ad2787944dd7ae4d06d60afb3967b5efc09ed14046919371b59/azure_mgmt_managementgroups-0.2.0-py2.py3-none-any.whl
Collecting azure-mgmt-maps==0.1.0
  Using cached https://files.pythonhosted.org/packages/e4/04/c64326729e842f3eab1fd527f7582e269e4b0e5b9324a4562edaf0371953/azure_mgmt_maps-0.1.0-py2.py3-none-any.whl
Collecting azure-mgmt-marketplaceordering==0.2.1
  Using cached https://files.pythonhosted.org/packages/38/10/7a334338d33d5d0f409ee3736568761cf681f2db50a32e477f287c7e4602/azure_mgmt_marketplaceordering-0.2.1-py2.py3-none-any.whl
Collecting azure-mgmt-media==1.1.1
  Using cached https://files.pythonhosted.org/packages/95/3f/57339eed3ba5cffd4f2a5980ce9db68e96171a265302e25991384185458a/azure_mgmt_media-1.1.1-py2.py3-none-any.whl
Collecting azure-mgmt-monitor==0.5.2
  Using cached https://files.pythonhosted.org/packages/6a/3b/a8b95ee25f1c209ad82ad06de39f4efbfb9dc8a8dc5da5a7a48d7897bf3e/azure_mgmt_monitor-0.5.2-py2.py3-none-any.whl
Collecting azure-mgmt-msi==0.2.0
  Using cached https://files.pythonhosted.org/packages/ae/95/b451721e38ca0feddce03ee3ce86158e208d0150253bd371207a8df4e9c5/azure_mgmt_msi-0.2.0-py2.py3-none-any.whl
Collecting azure-mgmt-netapp==0.6.0
  Using cached https://files.pythonhosted.org/packages/0a/ff/5baab3e32a27677c26d12bd0f96e842b1905cf68e9b3a494c1ce9e9e93a8/azure_mgmt_netapp-0.6.0-py2.py3-none-any.whl
Collecting azure-mgmt-network==7.0.0
  Using cached https://files.pythonhosted.org/packages/93/05/b904c59f0f5870ce058c1abf2a5f1598e643807ce2417bcabe59e11c4d61/azure_mgmt_network-7.0.0-py2.py3-none-any.whl
Collecting azure-mgmt-nspkg==3.0.2
  Using cached https://files.pythonhosted.org/packages/b3/c2/af4b47845f27dc7d206ed4908b9e580f8bc94a4b2f3956a0d87c40719d90/azure_mgmt_nspkg-3.0.2-py3-none-any.whl
Collecting azure-mgmt-policyinsights==0.3.1
  Using cached https://files.pythonhosted.org/packages/28/9e/b9bba392f60d757f51db7ea6507d9e1c3672c19ac4ac32e868784ed18405/azure_mgmt_policyinsights-0.3.1-py2.py3-none-any.whl
Collecting azure-mgmt-privatedns==0.1.0
  Using cached https://files.pythonhosted.org/packages/f1/47/fd5dba6d5f57c97bf21b4bf9e13bef73b50cab0b18bc171e497057f7e474/azure_mgmt_privatedns-0.1.0-py2.py3-none-any.whl
Collecting azure-mgmt-rdbms==1.9.0
  Using cached https://files.pythonhosted.org/packages/d2/94/c850c8257d19b08eb6b03154d6fe21938801562b4082d27985f54ebe9de4/azure_mgmt_rdbms-1.9.0-py2.py3-none-any.whl
Collecting azure-mgmt-recoveryservices==0.4.0
  Using cached https://files.pythonhosted.org/packages/86/32/941ceae2e22e9b0116e4aa5a11b5547b400ff9d5a95188996fd300de9426/azure_mgmt_recoveryservices-0.4.0-py2.py3-none-any.whl
Collecting azure-mgmt-recoveryservicesbackup==0.4.0
  Using cached https://files.pythonhosted.org/packages/e6/09/5be4d19ba84236a3c4a31ddbecc0fbb194cfe135c0efb1e293fe32a2788f/azure_mgmt_recoveryservicesbackup-0.4.0-py2.py3-none-any.whl
Collecting azure-mgmt-redis==6.0.0
  Using cached https://files.pythonhosted.org/packages/a1/7e/e958de2ef701104a35caabe4ad5d1588cd2d413271695924c586549d6a34/azure_mgmt_redis-6.0.0-py2.py3-none-any.whl
Collecting azure-mgmt-relay==0.1.0
  Using cached https://files.pythonhosted.org/packages/00/f7/f5c72bd19829cfaf9f070ec294c901ad7f98835ba9560fdad652afb1071f/azure_mgmt_relay-0.1.0-py2.py3-none-any.whl
Collecting azure-mgmt-reservations==0.3.1
  Using cached https://files.pythonhosted.org/packages/07/77/e46c178adbf5c4ba44c5ca93dffd0ccc9dafd9e55865dc27f2833e8a04c0/azure_mgmt_reservations-0.3.1-py2.py3-none-any.whl
Collecting azure-mgmt-resource==4.0.0
  Using cached https://files.pythonhosted.org/packages/f9/34/e29f97d24f55d6f0a70186acf5b0b3e7f9d87a444f08ad7d758020d5777f/azure_mgmt_resource-4.0.0-py2.py3-none-any.whl
Collecting azure-mgmt-search==2.1.0
  Using cached https://files.pythonhosted.org/packages/c9/18/fa4e0d541332c0ba6ef16beaa9b55f831436949e7d0981d5677dff2ddfb5/azure_mgmt_search-2.1.0-py2.py3-none-any.whl
Collecting azure-mgmt-security==0.1.0
  Using cached https://files.pythonhosted.org/packages/0e/ab/0cfab9760971775c27a4376332f73dd311e6742434a976f8f5e6eebf6557/azure_mgmt_security-0.1.0-py2.py3-none-any.whl
Collecting azure-mgmt-servicebus==0.6.0
  Using cached https://files.pythonhosted.org/packages/1e/8c/3e9479ed7344223399d3cf58aaea0679390a5dada659df41dbf32bc77f37/azure_mgmt_servicebus-0.6.0-py2.py3-none-any.whl
Collecting azure-mgmt-servicefabric==0.2.0
  Using cached https://files.pythonhosted.org/packages/6e/06/fafe8b5d881cfa68927e61557c8419dcfacb93e07f4ab17cc60959707a53/azure_mgmt_servicefabric-0.2.0-py2.py3-none-any.whl
Collecting azure-mgmt-signalr==0.3.0
  Using cached https://files.pythonhosted.org/packages/82/14/9870791f52fba120355385177a15fcacb34b77e67ca0f435f9f7e69ec098/azure_mgmt_signalr-0.3.0-py2.py3-none-any.whl
Collecting azure-mgmt-sql==0.13.0
  Using cached https://files.pythonhosted.org/packages/4d/a3/ecb897b63e69842d7699cec8290b3e1ffd213d8c1774abadc4d3a111efc9/azure_mgmt_sql-0.13.0-py2.py3-none-any.whl
Collecting azure-mgmt-sqlvirtualmachine==0.4.0
  Using cached https://files.pythonhosted.org/packages/06/a7/281d5a243a0b9aa0223e122b3401c20124e901b795b6bcdf3de84d3efed2/azure_mgmt_sqlvirtualmachine-0.4.0-py2.py3-none-any.whl
Collecting azure-mgmt-storage==5.0.0
  Using cached https://files.pythonhosted.org/packages/74/fc/d7d0348e6310361987f47b6d1e52963d2ddffde746493769f377c6533438/azure_mgmt_storage-5.0.0-py2.py3-none-any.whl
Collecting azure-mgmt-trafficmanager==0.51.0
  Using cached https://files.pythonhosted.org/packages/b1/2d/2a95dd8e57fa0c96548f0c1b11936c9820a40344e39660e3aebd63796c26/azure_mgmt_trafficmanager-0.51.0-py2.py3-none-any.whl
Collecting azure-mgmt-web==0.42.0
  Using cached https://files.pythonhosted.org/packages/44/d6/52af7c2b7c4c12dacccb1c7e4bb742f1847dc69300945cd6b82d4724a5d7/azure_mgmt_web-0.42.0-py2.py3-none-any.whl
Collecting azure-multiapi-storage==0.2.4
  Using cached https://files.pythonhosted.org/packages/e7/ec/d8ee7f19a5e9c4e6756a5fef11908f14c6d2f3557a93029151392015f112/azure_multiapi_storage-0.2.4-py2.py3-none-any.whl
Collecting azure-nspkg==3.0.2
  Using cached https://files.pythonhosted.org/packages/c4/0c/c562be95a9a2ed52454f598571cf300b1114d0db2aa27f5b8ed3bb9cd0c0/azure_nspkg-3.0.2-py3-none-any.whl
Collecting azure-storage-blob==1.5.0
  Using cached https://files.pythonhosted.org/packages/25/f4/a307ed89014e9abb5c5cfc8ca7f8f797d12f619f17a6059a6fd4b153b5d0/azure_storage_blob-1.5.0-py2.py3-none-any.whl
Collecting azure-storage-common==1.4.2
  Using cached https://files.pythonhosted.org/packages/05/6c/b2285bf3687768dbf61b6bc085b0c1be2893b6e2757a9d023263764177f3/azure_storage_common-1.4.2-py2.py3-none-any.whl
Collecting bcrypt==3.1.7
  Using cached https://files.pythonhosted.org/packages/fa/aa/025a3ab62469b5167bc397837c9ffc486c42a97ef12ceaa6699d8f5a5416/bcrypt-3.1.7.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting certifi==2019.6.16
  Using cached https://files.pythonhosted.org/packages/69/1b/b853c7a9d4f6a6d00749e94eb6f3a041e342a885b87340b79c1ef73e3a78/certifi-2019.6.16-py2.py3-none-any.whl
Collecting cffi==1.12.3
  Using cached https://files.pythonhosted.org/packages/93/1a/ab8c62b5838722f29f3daffcc8d4bd61844aa9b5f437341cc890ceee483b/cffi-1.12.3.tar.gz
Collecting chardet==3.0.4
  Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Collecting colorama==0.4.1
  Using cached https://files.pythonhosted.org/packages/4f/a6/728666f39bfff1719fc94c481890b2106837da9318031f71a8424b662e12/colorama-0.4.1-py2.py3-none-any.whl
Collecting cryptography==2.7
  Using cached https://files.pythonhosted.org/packages/c2/95/f43d02315f4ec074219c6e3124a87eba1d2d12196c2767fadfdc07a83884/cryptography-2.7.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting fabric==2.4.0
  Using cached https://files.pythonhosted.org/packages/d9/e4/e6fa248c94ee5d45def54b609fcf70f39d0b7f7050f2d4405c5f156b5516/fabric-2.4.0-py2.py3-none-any.whl
Collecting humanfriendly==4.18
  Using cached https://files.pythonhosted.org/packages/90/df/88bff450f333114680698dc4aac7506ff7cab164b794461906de31998665/humanfriendly-4.18-py2.py3-none-any.whl
Collecting idna==2.8
  Using cached https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl
Collecting invoke==1.2.0
  Using cached https://files.pythonhosted.org/packages/be/9f/8508712c9cad73ac0c8eeb2c3e51c9ef65136653dda2b512bde64109f023/invoke-1.2.0-py3-none-any.whl
Collecting isodate==0.6.0
  Using cached https://files.pythonhosted.org/packages/9b/9f/b36f7774ff5ea8e428fdcfc4bb332c39ee5b9362ddd3d40d9516a55221b2/isodate-0.6.0-py2.py3-none-any.whl
Collecting Jinja2==2.10.1
  Using cached https://files.pythonhosted.org/packages/1d/e7/fd8b501e7a6dfe492a433deb7b9d833d39ca74916fa8bc63dd1a4947a671/Jinja2-2.10.1-py2.py3-none-any.whl
Collecting jmespath==0.9.4
  Using cached https://files.pythonhosted.org/packages/83/94/7179c3832a6d45b266ddb2aac329e101367fbdb11f425f13771d27f225bb/jmespath-0.9.4-py2.py3-none-any.whl
Collecting jsmin==2.2.2
  Using cached https://files.pythonhosted.org/packages/17/73/615d1267a82ed26cd7c124108c3c61169d8e40c36d393883eaee3a561852/jsmin-2.2.2.tar.gz
Collecting knack==0.6.3
  Using cached https://files.pythonhosted.org/packages/52/13/bde14df1dbf6ca4ccef2d8e7edd2ccefaa29f95843bf18b554d67ea16ef9/knack-0.6.3-py2.py3-none-any.whl
Requirement already satisfied: MarkupSafe==1.1.1 in /usr/lib/python3.6/site-packages (from -r azurecli-pipreqs.txt (line 97)) (1.1.1)
Collecting mock==2.0.0
  Using cached https://files.pythonhosted.org/packages/e6/35/f187bdf23be87092bd0f1200d43d23076cee4d0dec109f195173fd3ebc79/mock-2.0.0-py2.py3-none-any.whl
Collecting msrest==0.6.9
  Using cached https://files.pythonhosted.org/packages/65/31/3a559abf6fc7355234088ad076a49e932ca2f952fe2fa6c49c89fa7f483d/msrest-0.6.9-py2.py3-none-any.whl
Collecting msrestazure==0.6.2
  Using cached https://files.pythonhosted.org/packages/68/75/5cb56ca8cbc6c5fe476e4878c73f57a331edcf55e5d3fcb4a7377d7d659d/msrestazure-0.6.2-py2.py3-none-any.whl
Collecting oauthlib==3.0.1
  Using cached https://files.pythonhosted.org/packages/16/95/699466b05b72b94a41f662dc9edf87fda4289e3602ecd42d27fcaddf7b56/oauthlib-3.0.1-py2.py3-none-any.whl
Collecting paramiko==2.6.0
  Using cached https://files.pythonhosted.org/packages/4b/80/74dace9e48b0ef923633dfb5e48798f58a168e4734bca8ecfaf839ba051a/paramiko-2.6.0-py2.py3-none-any.whl
Collecting pbr==5.3.1
  Using cached https://files.pythonhosted.org/packages/7a/db/6e2fcd67cb1c7c98f54f7f19e925f8d9b23cffb84dab45528a759215fca5/pbr-5.3.1-py2.py3-none-any.whl
Collecting portalocker==1.2.1
  Using cached https://files.pythonhosted.org/packages/57/41/05e79e5516db1cc0c967b3202388cde729f871c871b0a07bf24ff11adfcf/portalocker-1.2.1-py2.py3-none-any.whl
Requirement already satisfied: pycparser==2.19 in /usr/lib/python3.6/site-packages (from -r azurecli-pipreqs.txt (line 105)) (2.19)
Collecting pydocumentdb==2.3.3
  Using cached https://files.pythonhosted.org/packages/cf/53/310ef5bd836e54f8a8c3d4da8c9a8c9b21c6bb362665e018eb27c41a1518/pydocumentdb-2.3.3.tar.gz
Collecting Pygments==2.4.2
  Using cached https://files.pythonhosted.org/packages/5c/73/1dfa428150e3ccb0fa3e68db406e5be48698f2a979ccbcec795f28f44048/Pygments-2.4.2-py2.py3-none-any.whl
Collecting PyJWT==1.7.1
  Using cached https://files.pythonhosted.org/packages/87/8b/6a9f14b5f781697e51259d81657e6048fd31a113229cf346880bb7545565/PyJWT-1.7.1-py2.py3-none-any.whl
Collecting PyNaCl==1.3.0
  Using cached https://files.pythonhosted.org/packages/61/ab/2ac6dea8489fa713e2b4c6c5b549cc962dd4a842b5998d9e80cf8440b7cd/PyNaCl-1.3.0.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting pyOpenSSL==19.0.0
  Using cached https://files.pythonhosted.org/packages/01/c8/ceb170d81bd3941cbeb9940fc6cc2ef2ca4288d0ca8929ea4db5905d904d/pyOpenSSL-19.0.0-py2.py3-none-any.whl
Collecting pypiwin32==223
  Using cached https://files.pythonhosted.org/packages/d0/1b/2f292bbd742e369a100c91faa0483172cd91a1a422a6692055ac920946c5/pypiwin32-223-py3-none-any.whl
Collecting pyreadline==2.1
  Using cached https://files.pythonhosted.org/packages/bc/7c/d724ef1ec3ab2125f38a1d53285745445ec4a8f19b9bb0761b4064316679/pyreadline-2.1.zip
Collecting python-dateutil==2.8.0
  Using cached https://files.pythonhosted.org/packages/41/17/c62faccbfbd163c7f57f3844689e3a78bae1f403648a6afb1d0866d87fbb/python_dateutil-2.8.0-py2.py3-none-any.whl
Collecting pytz==2019.1
  Using cached https://files.pythonhosted.org/packages/3d/73/fe30c2daaaa0713420d0382b16fbb761409f532c56bdcc514bf7b6262bb6/pytz-2019.1-py2.py3-none-any.whl
Collecting PyYAML==5.1.1
  Using cached https://files.pythonhosted.org/packages/a3/65/837fefac7475963d1eccf4aa684c23b95aa6c1d033a2c5965ccb11e22623/PyYAML-5.1.1.tar.gz
Collecting requests==2.22.0
  Using cached https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl
Collecting requests-oauthlib==1.2.0
  Using cached https://files.pythonhosted.org/packages/c2/e2/9fd03d55ffb70fe51f587f20bcf407a6927eb121de86928b34d162f0b1ac/requests_oauthlib-1.2.0-py2.py3-none-any.whl
Collecting scp==0.13.2
  Using cached https://files.pythonhosted.org/packages/4d/7a/3d76dc5ad8deea79642f50a572e1c057cb27e8b427f83781a2c05ce4e5b6/scp-0.13.2-py2.py3-none-any.whl
Requirement already satisfied: six==1.12.0 in /usr/lib/python3.6/site-packages (from -r azurecli-pipreqs.txt (line 119)) (1.12.0)
Collecting sshtunnel==0.1.5
  Using cached https://files.pythonhosted.org/packages/c5/5c/4b320d7ec4b0d5d4d6df1fdf66a5799625b3623d0ce4efe81719c6f8dfb3/sshtunnel-0.1.5.tar.gz
Collecting tabulate==0.8.3
  Using cached https://files.pythonhosted.org/packages/c2/fd/202954b3f0eb896c53b7b6f07390851b1fd2ca84aa95880d7ae4f434c4ac/tabulate-0.8.3.tar.gz
Collecting urllib3==1.25.3
  Using cached https://files.pythonhosted.org/packages/e6/60/247f23a7121ae632d62811ba7f273d0e58972d75e58a94d329d51550a47d/urllib3-1.25.3-py2.py3-none-any.whl
Collecting vsts==0.1.25
  Using cached https://files.pythonhosted.org/packages/9a/4a/c9a5c90659bf0df577067cf8baf9c690501306290e5688d8aeae07fbd9f8/vsts-0.1.25-py3-none-any.whl
Collecting vsts-cd-manager==1.0.2
  Using cached https://files.pythonhosted.org/packages/fc/cd/29c798a92d5f7a718711e4beace03612c93ad7ec2121aea606d8abae38ee/vsts-cd-manager-1.0.2.tar.gz
Collecting wcwidth==0.1.7
  Using cached https://files.pythonhosted.org/packages/7e/9f/526a6947247599b084ee5232e4f9190a38f398d7300d866af3ab571a5bfe/wcwidth-0.1.7-py2.py3-none-any.whl
Collecting websocket-client==0.56.0
  Using cached https://files.pythonhosted.org/packages/29/19/44753eab1fdb50770ac69605527e8859468f3c0fd7dc5a76dd9c4dbd7906/websocket_client-0.56.0-py2.py3-none-any.whl
Collecting xmltodict==0.12.0
  Using cached https://files.pythonhosted.org/packages/28/fd/30d5c1d3ac29ce229f6bdc40bbc20b28f716e8b363140c26eff19122d8a5/xmltodict-0.12.0-py2.py3-none-any.whl
Collecting azure-mgmt-managedservices~=1.0
  Using cached https://files.pythonhosted.org/packages/2e/6d/9e22f03eef41ac4c9f8a6cbe002d65e12f693cc7b93eff1b907918ed8f60/azure_mgmt_managedservices-1.0.0-py2.py3-none-any.whl
Collecting psutil~=5.6
  Using cached https://files.pythonhosted.org/packages/1c/ca/5b8c1fe032a458c2c4bcbe509d1401dca9dda35c7fc46b36bb81c2834740/psutil-5.6.3.tar.gz
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3.6 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-0crtyxna/psutil/setup.py'"'"'; __file__='"'"'/tmp/pip-install-0crtyxna/psutil/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-0crtyxna/psutil/pip-egg-info
         cwd: /tmp/pip-install-0crtyxna/psutil/
    Complete output (1 lines):
    platform cygwin is not supported
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Something that installs seems to include psutil again.

Something that installs seems to include psutil again.

I can look into this, although I am no longer on the CLI team, so it might take me a while.

@yonzhan could someone help with this? @ElvenSpellmaker is trying to install the cli using a modified requirements.txt file in Cygwin, because regular methods include psutil which doesn't work on cygwin.

Context:
psutil a dependency used by (az feedback) does not support cygwin. Even when @ElvenSpellmaker removes this dependency from requirements.txt it seems like it is still being installed. I wonder if this is a caching issue or a dirty environment issue (@ElvenSpellmaker should use a virtualenv if he isn't using one), as I don't think any of the other CLI dependencies require psutil. If this is not an env issue then it is probably a dependency issue, some other dependency requires psutil and so it is being implicitly added.

Hey @adewaleo, thanks for tagging someone who might be able to help. =)

About the caching issue, I just moved job recently and tried to install this on a fresh install, so there shouldn't be a caching issue.

@ElvenSpellmaker, I see. Thanks for the clarification. Are you installing in a new python virtual environment and not directly in the regular python path?

@ElvenSpellmaker I looked into this, the psutil dependency is actually coming from line 7 of the requirements file

Requirement already satisfied: psutil~=5.6 in c:\users\oladewal\source\temp\venv\lib\site-packages >(from azure-cli==2.0.76->-r .\requirements.py3.windows.txt (line 7)) (5.6.5)

Line 7 of requirements.py3.windows.txt:

azure-cli==2.0.76

the azure-cli package itself likely requires the other dependencies in the file. This means at least some of the other dependencies in this file are unnecessary.*
I was able to install the cli from source without installing psutil.

I did this by emoving psutil from azure-cli\setup.py and then running azdev setup -c \path\to\repo. See https://github.com/Azure/azure-cli-dev-tools#setting-up-your-development-environment for more infromation.

Sorry for the confusion.... @ElvenSpellmaker

*@yonzhan seems like some of the other dependencies in the requirements.txt file are already >required by azure-cli. This is not necessarily a problem but letting you know.

Hey, I tried following the instructions on the page you linked. For a start venv doesn't come with an activate script and so I couldn't activate the virtualenv using that module (should I pip3 install virtualenv and use that instead?)

And then I installed azdev and tried to run the set-up command after removing psutil and I get:

/c/src/azure-cli (dev) [0] $ azdev setup
Traceback (most recent call last):
  File "/usr/bin/azdev", line 11, in <module>
    load_entry_point('azdev==0.1.4', 'console_scripts', 'azdev')()
  File "/usr/lib/python3.6/site-packages/azdev/__main__.py", line 40, in main
    config_dir=get_azdev_config_dir())
  File "/usr/lib/python3.6/site-packages/azdev/utilities/config.py", line 24, in get_azdev_config_dir
    _, env_name = os.path.splitdrive(get_env_path())
  File "/usr/lib/python3.6/posixpath.py", line 138, in splitdrive
    p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType

Hey, I tried following the instructions on the page you linked. For a start venv doesn't come with an activate script and so I couldn't activate the virtualenv using that module (should I pip3 install virtualenv and use that instead?)

And then I installed azdev and tried to run the set-up command after removing psutil and I get:

/c/src/azure-cli (dev) [0] $ azdev setup
Traceback (most recent call last):
  File "/usr/bin/azdev", line 11, in <module>
    load_entry_point('azdev==0.1.4', 'console_scripts', 'azdev')()
  File "/usr/lib/python3.6/site-packages/azdev/__main__.py", line 40, in main
    config_dir=get_azdev_config_dir())
  File "/usr/lib/python3.6/site-packages/azdev/utilities/config.py", line 24, in get_azdev_config_dir
    _, env_name = os.path.splitdrive(get_env_path())
  File "/usr/lib/python3.6/posixpath.py", line 138, in splitdrive
    p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType

What do you mean by venv doesn't come with an activate script. It should have one in venv\Scripts. The casing matters, feel free to inspect the folder.

I am not sure why you got that error. I believe azdev expects you to run it from a virtual env.
Can you try azdev setup -c /path/to/repo? for example in the root of the repo azdev setup -c .

There is no activate script under either scripts or the bin directory.

I'll try it your way later thanks.

I see. That's strange, I have found the activate script when I created a venv in the past (on windows and mac). Maybe its a cygwin issue? If you inspect the venv folder in file explorer do you see an activate script?

Weird, I have one there now... I've sourced it in source env/bin/activate

I'm running azdev setup -c . right now to see what it says.

OK I ran the command:

(env) /c/src/azure-cli (dev) [0] $ azdev setup -c .

=======================
| Azure CLI Dev Setup |
=======================

Azure CLI:
    /c/src/azure-cli


 Installing packages
=====================

Upgrading pip...
Installing `requirements.txt`...
Installing `azure-cli-nspkg`...
Installing `azure-cli-telemetry`...
Installing `azure-cli-core`...
Installing `azure-cli`...
Installing `azure-cli-testsdk`...
Installing `azure-nspkg`...
Installing `azure-mgmt-nspkg`...

Elapsed time: 41 min 58 sec

 Finished dev setup!
=====================

It took a really long time, I'm not sure why as this is a powerful machine...

(env) /c/src/azure-cli (dev) [0] $ which az
/c/src/azure-cli/env/bin/az
(env) /c/src/azure-cli (dev) [0] $ time az
...
real    0m6.797s
user    0m3.106s
sys     0m3.368s

Nice! Looks like you were able to setup the CLI in cygwin from source! Do regular cli commands work? Note that az feedback relies on psutil and so would fail if you tried to run it.

I wonder if cygwin adds to this setup time, dev setup shouldn't take as long as 41 mins...

@adewaleo I'm having a trouble logging in as it's trying to use links instead of telling me to open a browser like it usually does... Any ideas?

Also of interest is soon I might be able to use native Windows apps without the problems that come with them as http://www.cygwin.com/ml/cygwin/2019-10/msg00068.html seems to say that Cygwin will support the pseudo-cli stuff that Windows 10 introduced.

I had to do export BROWSER='cygstart' which I never had to do before haha, weird.

Commands seem to run fine once logged in

Nice! Great to hear you were able to log in and commands work fine. Do you mind me why you are using cygwin instead of a regular windows environment?

Hi there. It seems, that there is a workaround. But I am now lost, how to use this workaround and install azure cli within cygwin. Can you please explain how to do the job?

@lweberru Sure, it's not a perfect work-around as it won't receive updates and it's not running a release version, but it's a workaround nonetheless:
(If you want a virtualenv then follow the virtualenv steps in posts above.)
1.) Clone this repo and cd into it
2.) Remove psutil from the requirements.txt as shown above
3.) pip3 install azdev
4.) azdev setup -c .

Note: I'm using Python 3, but it should work for 2 too I believe.

@adewaleo Unfortunately the Windows environment is awful for developers haha, Powerhell and Cmd don't cut it for my work by a long-shot. (Plus mintty [also wsltty for WSL] is an awesome Terminal, far better than any offering, even on Linux imo!)

(And WSL/WSL2 is a hacky hack that doesn't feel seamless like Cygwin does. Not everything works in Cygwin but it's served me well for over 10 years.)

EDIT: Also msys, Git Bash, Babun, and plenty of other projects use Cygwin as a base.

Getting following error:

lukas@LUKAS ~/AzureCliInstall/azure-cli
$ azdev setup -c .

Traceback (most recent call last):
File "/usr/bin/azdev", line 8, in
sys.exit(main())
File "/usr/lib/python3.7/site-packages/azdev/__main__.py", line 40, in main
config_dir=get_azdev_config_dir())
File "/usr/lib/python3.7/site-packages/azdev/utilities/config.py", line 24, in get_azdev_config_dir
_, env_name = os.path.splitdrive(get_env_path())
File "/usr/lib/python3.7/posixpath.py", line 138, in splitdrive
p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType

I got that when I didn't specify a path, I wonder if it's not liking the ~, could you pwd and explicitly state the full path to the -c?

I could install it via virtualenv. But where is the installation than. How can I start it after :
azdev setup -c .

If you're in the virtual env you should be able to type az.

Each terminal window will need that virtualenv source'd in to find the correct binary

I have to start it directly within the installed directory with a './az'. Else it does not work. I tried to link the file to /usr/bin/az, but then it fails
An also it fails for the command az webapp list:
The command failed with an unexpected error. Here is the traceback:

No module named 'fabric'
Traceback (most recent call last):
File "/home/lukas/AzureCliInstall/azure-cli/lib/python3.7/site-packages/knack/cli.py", line 206, in invoke
cmd_result = self.invocation.execute(args)
File "/home/lukas/AzureCliInstall/azure-cli/src/azure-cli-core/azure/cli/core/commands/__init__.py", line 523, in execute
self.commands_loader.load_arguments(command)
File "/home/lukas/AzureCliInstall/azure-cli/src/azure-cli-core/azure/cli/core/__init__.py", line 293, in load_arguments
self.command_table[command].load_arguments() # this loads the arguments via reflection
File "/home/lukas/AzureCliInstall/azure-cli/src/azure-cli-core/azure/cli/core/commands/__init__.py", line 291, in load_arguments
super(AzCliCommand, self).load_arguments()
File "/home/lukas/AzureCliInstall/azure-cli/lib/python3.7/site-packages/knack/commands.py", line 97, in load_arguments
cmd_args = self.arguments_loader()
File "/home/lukas/AzureCliInstall/azure-cli/src/azure-cli-core/azure/cli/core/__init__.py", line 490, in default_arguments_loader
op = handler or self.get_op_handler(operation, operation_group=kwargs.get('operation_group'))
File "/home/lukas/AzureCliInstall/azure-cli/src/azure-cli-core/azure/cli/core/__init__.py", line 530, in get_op_handler
op = import_module(mod_to_import)
File "/home/lukas/AzureCliInstall/azure-cli/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1006, in _gcd_import
File "", line 983, in _find_and_load
File "", line 967, in _find_and_load_unlocked
File "", line 677, in _load_unlocked
File "", line 728, in exec_module
File "", line 219, in _call_with_frames_removed
File "/home/lukas/AzureCliInstall/azure-cli/src/azure-cli/azure/cli/command_modules/appservice/custom.py", line 25, in
from fabric import Connection
ModuleNotFoundError: No module named 'fabric'

If you activated the virtualenv correctly then you'l have (env) at the beginning of your prompt and the bin directory for that virtalenv will be in your path so just typing az should work.
image
image

Probably i failed with this virtualenv as I even dont know what it is

Virtualenv is a virtual environment (see https://docs.python.org/3/library/venv.html), rather than installing modules globally you install them to a separate directory, kind of like how PHP's composer, Ruby's bundler, and Node.js's npm.

EDIT:

  • composer installs to vendor in each project
  • bundler installs globally by default (but can go to a vendor folder), and works out deps at runtime by using the Gemfile/Gemfile.lock
  • npm installs to node_modules for each project

Which command I have to execute to do this virtualenv thing correctly?

python3 -m venv env
source env/bin/activate

$ python3 -m venv env
(azure-cli)
lukas@LUKAS ~/AzureCliInstall/azure-cli
$ source env/bin/activate
(env)
lukas@LUKAS ~/AzureCliInstall/azure-cli
$ az
-bash: az: Kommando nicht gefunden.
(env)
lukas@LUKAS ~/AzureCliInstall/azure-cli

$ echo $PATH
/home/lukas/AzureCliInstall/azure-cli/env/bin:/usr/local/bin:/usr/bin:...

and the az binary resides in
/home/lukas/AzureCliInstall/azure-cli/src/azure-cli/az

Now try azdev setup -c . inside the repo directory root and then try az again

$ azdev setup -c .

=======================

| Azure CLI Dev Setup |

Azure CLI:
/home/lukas/AzureCliInstall/azure-cli

Installing packages

Upgrading pip...
Installing requirements.txt...
Installing azure-cli-nspkg...
Installing azure-cli-telemetry...
Installing azure-cli-core...
Installing azure-cli...
Installing azure-cli-testsdk...
Installing azure-nspkg...
Installing azure-mgmt-nspkg...

Elapsed time: 18 min 31 sec

Finished dev setup!

(env)
lukas@LUKAS ~/AzureCliInstall/azure-cli
$ az
-bash: az: Kommando nicht gefunden.
(env)

and the az binary resides in
/home/lukas/AzureCliInstall/azure-cli/src/azure-cli/az

It should reside in env/bin

Yes and that seems to be the problem...

@ElvenSpellmaker thanks a lot for helping out @lweberru

So whatever I do, the binaries are always inside
/home/lukas/AzureCliInstall/azure-cli/src/azure-cli/az
and the path (virtual env) is
/home/lukas/AzureCliInstall/azure-cli/env/bin

I also tried to mv or copy the files out of /home/lukas/AzureCliInstall/azure-cli/src/azure-cli/ to the virtual env but that also fails. Any idea?

my commands are
1.) python3 -m venv env
2.) source env/bin/activate
3.) azdev setup -c .

then i test with a single "az"

But even more relevant is, that the command az itself does not work:

The command failed with an unexpected error. Here is the traceback:

No module named 'fabric'
Traceback (most recent call last):
File "/home/lukas/AzureCliInstall/azure-cli/env/lib/python3.6/site-packages/knack/cli.py", line 206, in invoke
cmd_result = self.invocation.execute(args)
File "/home/lukas/AzureCliInstall/azure-cli/src/azure-cli-core/azure/cli/core/commands/__init__.py", line 523, in execute
self.commands_loader.load_arguments(command)
File "/home/lukas/AzureCliInstall/azure-cli/src/azure-cli-core/azure/cli/core/__init__.py", line 293, in load_arguments
self.command_table[command].load_arguments() # this loads the arguments via reflection
File "/home/lukas/AzureCliInstall/azure-cli/src/azure-cli-core/azure/cli/core/commands/__init__.py", line 291, in load_arguments
super(AzCliCommand, self).load_arguments()
File "/home/lukas/AzureCliInstall/azure-cli/env/lib/python3.6/site-packages/knack/commands.py", line 97, in load_arguments
cmd_args = self.arguments_loader()
File "/home/lukas/AzureCliInstall/azure-cli/src/azure-cli-core/azure/cli/core/__init__.py", line 490, in default_arguments_loader
op = handler or self.get_op_handler(operation, operation_group=kwargs.get('operation_group'))
File "/home/lukas/AzureCliInstall/azure-cli/src/azure-cli-core/azure/cli/core/__init__.py", line 530, in get_op_handler
op = import_module(mod_to_import)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 994, in _gcd_import
File "", line 971, in _find_and_load
File "", line 955, in _find_and_load_unlocked
File "", line 665, in _load_unlocked
File "", line 678, in exec_module
File "", line 219, in _call_with_frames_removed
File "/home/lukas/AzureCliInstall/azure-cli/src/azure-cli/azure/cli/command_modules/appservice/custom.py", line 25, in
from fabric import Connection
ModuleNotFoundError: No module named 'fabric'

only "az login" works

does pip list / freeze include fabric==2.4.0 or similar?

No it does not. Can I install it seperatly?

I installed fabric via "pip install fabric"
pip install fabric
[...]
Successfully installed fabric-2.5.0 invoke-1.3.0

and now I get:
az webapp list
[...]
ModuleNotFoundError: No module named 'azure.mgmt.storage'

I installed that module as well. This is than followed by the next and next and next module, which is missing...

You can but the point of running azdev setup -c . is to install these dependencies from the project's setup.py... its best to get that working or you might have to manually install the missing dependencies

I think the first thing to work out is why it's building to ./ rather than ./env/bin... 🤔

after azdev setup, within a virtual env, you should be able to run az automatically.

What does your path show in the virtualenv. It should be prefixed by the path to the binaries in your virtualenv after activating it.

On my mac It shows:

$ echo $PYTHONPATH
http://users/tosin/Repos/my_venvs/cli-venv/bin:.......:/usr/local/go/bin

after https://github.com/Azure/azure-cli/pull/11665 has been merged it is possible to install latest azure-cli in cygwin

That's great news, let's hope it makes a release soon! @avoidik Could you update this issue when it makes a release please?

@ElvenSpellmaker it is already in there

$ az version | jq -r 'with_entries(select(.key=="azure-cli"))'
This command is in preview. It may be changed/removed in a future release.
{
  "azure-cli": "2.2.0"
}

Thanks!

Was this page helpful?
0 / 5 - 0 ratings