vmware / vsphere-automation-sdk-python

Python samples, language bindings, and API reference documentation for vSphere, VMC, and NSX-T using the VMware REST API
MIT License
746 stars 313 forks source link

setup.py deprecated, replaced by pyproject.toml #367

Open sodul opened 1 year ago

sodul commented 1 year ago

Describe the bug

When installing vsphere-automation-sdk-python@v8.0.0.1 with a recent version of pip we get deprecation warnings that setup.py will no longer be supported starting with pip 23.1.

  DEPRECATION: lxml is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559
  DEPRECATION: pyVmomi is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559
  DEPRECATION: vSphere-Automation-SDK is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559

Reproduction steps

pip install git+https://github.com/vmware/vsphere-automation-sdk-python@v8.0.0.1#egg=vSphere-Automation-SDK

Expected behavior

The installation should complete without conflicts or deprecation warnings.

Additional context

We use the SDK alongside many other third party libraries and we need to move forward with recent versions of python, pip, setuptools, etc... This makes it important for us to be able to install the SDK with recent versions of third party libraries.

See https://github.com/pypa/pip/issues/8559

iamrajiv commented 1 year ago

Hi @sodul,

The deprecation warnings are indicating that the vsphere-automation-sdk-python@v8.0.0.1 package is being installed using the legacy setup.py method and this behavior will no longer be supported starting with pip version 23.1. To fix this issue, follow the steps below:

  1. Upgrade your pip version to the latest using the following command: pip install --upgrade pip
  2. Install the package with the -use-pep517 option as follows: pip install --use-pep517 git+https://github.com/vmware/vsphere-automation-sdk-python@v8.0.0.1#egg=vSphere-Automation-SDK
  3. Verify that the installation was successful by running the following command: pip show vsphere-automation-sdk-python
  4. After these steps, you should no longer see the deprecation warnings and the installation should be completed without conflicts.

Using the --use-pep517 option will force pip to use the new method, which ensures that the package is installed correctly with the latest versions of third-party libraries.

cc: @shwetapurohit @aagrawal3