Keeper-Security / secrets-manager

Keeper Secrets Manager is a cloud-based, zero-knowledge platform for securing infrastructure secrets. Provides automatic password rotation and integration into popular DevOps CI/CD tools.
https://www.keepersecurity.com/secrets-manager.html
MIT License
87 stars 47 forks source link

Supported Python Version? #574

Open kript opened 7 months ago

kript commented 7 months ago

Hi Folks,

Following the instructions I installed the module into a virtualenv on an Ubuntu 18.04 system using Python 3.8 and got;

$ cat requirements.txt
keeper-secrets-manager-cli

(.venv) $ pip freeze
boto3==1.34.49
botocore==1.34.49
certifi==2024.2.2
cffi==1.16.0
charset-normalizer==3.3.2
click==8.1.7
click-help-colors==0.9.4
click-repl==0.3.0
colorama==0.4.6
cryptography==42.0.5
decorator==5.1.1
ecdsa==0.18.0
idna==3.6
importlib-metadata==7.0.1
iso8601==2.1.0
jmespath==1.0.1
jsonpath-rw==1.4.0
jsonpath-rw-ext==1.2.2
keeper-secrets-manager-cli==1.1.1
keeper-secrets-manager-core==16.6.3
keeper-secrets-manager-helper==1.0.4
keeper-secrets-manager-storage==1.0.2
pbr==6.0.0
ply==3.11
prompt-toolkit==2.0.10
psutil==5.9.8
pycparser==2.21
python-dateutil==2.8.2
PyYAML==6.0.1
requests==2.31.0
s3transfer==0.10.0
six==1.16.0
update-checker==0.18.0
urllib3==1.26.18
wcwidth==0.2.13
zipp==3.17.0

but when I try and do anything with it;

$ ksm profile init EU:SECRET_HERE
Traceback (most recent call last):
  File "/home/jc18/code/jc18/templates/keeper/.venv/lib/python3.8/site-packages/pkg_resources/__init__.py", line 583, in _build_master
    ws.require(__requires__)
  File "/home/jc18/code/jc18/templates/keeper/.venv/lib/python3.8/site-packages/pkg_resources/__init__.py", line 900, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/home/jc18/code/jc18/templates/keeper/.venv/lib/python3.8/site-packages/pkg_resources/__init__.py", line 791, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (prompt-toolkit 2.0.10 (/home/jc18/code/jc18/templates/keeper/.venv/lib/python3.8/site-packages), Requirement.parse('prompt-toolkit>=3.0.36'), {'click-repl'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/jc18/code/jc18/templates/keeper/.venv/bin/ksm", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/home/jc18/code/jc18/templates/keeper/.venv/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3252, in <module>
    def _initialize_master_working_set():
  File "/home/jc18/code/jc18/templates/keeper/.venv/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3235, in _call_aside
    f(*args, **kwargs)
  File "/home/jc18/code/jc18/templates/keeper/.venv/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3264, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/home/jc18/code/jc18/templates/keeper/.venv/lib/python3.8/site-packages/pkg_resources/__init__.py", line 585, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/home/jc18/code/jc18/templates/keeper/.venv/lib/python3.8/site-packages/pkg_resources/__init__.py", line 598, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/home/jc18/code/jc18/templates/keeper/.venv/lib/python3.8/site-packages/pkg_resources/__init__.py", line 791, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (prompt-toolkit 2.0.10 (/home/jc18/code/jc18/templates/keeper/.venv/lib/python3.8/site-packages), Requirement.parse('prompt-toolkit>=3.0.36'), {'click-repl'})

Same happens with the environment variable, or even if I run the command with no variable or token. If I use a later version of python (I tried 3.11.0), then the command runs.

Could a supported version of python (and perhaps a suggested requirements.txt with compatible versions) be added to the documentation please?

maksimu commented 6 months ago

What will happen if you run pip install -U prompt-toolkit? That should upgrade the required dependencies.