techservicesillinois / awscli-login

​awscli-login is an AWS CLI plugin that manages retrieving and rotating Amazon STS temporary credentials using SAML ECP for authentication with optional support for Duo.
https://pypi.org/project/awscli-login/
Other
54 stars 25 forks source link

Installation error #163

Closed edthedev closed 11 months ago

edthedev commented 12 months ago

Context

Following the install instructions errors out when setup.py tries to read a readme.rst file that has moved.

https://github.com/techservicesillinois/awscli-login/blob/5ea6db68e439c9731753c150e281c0c834752dfc/setup.py#L8

Tasks

edthedev commented 12 months ago

This bug blocks installation from test PyPi

ddriddle commented 11 months ago

I can reproduce the bug:

$ python -m venv venv
$ source venv/bin/activate
$ pip install --upgrade setuptools
$ pip install -i https://test.pypi.org/simple/ --no-deps awscli-login
Looking in indexes: https://test.pypi.org/simple/
Collecting awscli-login
  Downloading https://test-files.pythonhosted.org/packages/e4/65/92deb78508827cb25116b3ccf2fce966c862bf20543ca1091e04dfc99773/awscli-login-0.2b2.dev45.tar.gz (80 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 80.4/80.4 kB 1.3 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [7 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/private/var/folders/5l/4dh10m0s2dl86hw__w1qp6qr0000gq/T/pip-install-uwlfpz4k/awscli-login_a31e888852254628be0e4e9d4490fff3/setup.py", line 8, in <module>
          with open(path.join(here, 'docs/readme.rst'), encoding='utf-8') as f:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/5l/4dh10m0s2dl86hw__w1qp6qr0000gq/T/pip-install-uwlfpz4k/awscli-login_a31e888852254628be0e4e9d4490fff3/docs/readme.rst'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

[notice] A new release of pip available: 22.3.1 -> 23.3.1
[notice] To update, run: pip install --upgrade pip
ddriddle commented 11 months ago

I am also able to reproduce the error locally without using Test PyPI. Note that this bug only effects the source distribution not the wheel:


$ python -V
Python 3.11.1
$ python -m venv venv
$ source venv/bin/activate
$ make deps
$ PYPIENV=test make build
$ pip install --no-deps dist/awscli-login-0.2b2.dev45.tar.gz 
Processing ./dist/awscli-login-0.2b2.dev45.tar.gz
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [7 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/private/var/folders/5l/4dh10m0s2dl86hw__w1qp6qr0000gq/T/pip-req-build-hqvg0jij/setup.py", line 8, in <module>
          with open(path.join(here, 'docs/readme.rst'), encoding='utf-8') as f:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/5l/4dh10m0s2dl86hw__w1qp6qr0000gq/T/pip-req-build-hqvg0jij/docs/readme.rst'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

[notice] A new release of pip available: 22.3.1 -> 23.3.1
[notice] To update, run: pip install --upgrade pip
ddriddle commented 11 months ago

The source distribution fails because setuptools_scm includes only files checked into git by default. The readme is now a build artifact and is no longer checked in. To include it, it is necessary to add the file to the MANIFEST.in file.