cyberark / cyberark-aws-auto-onboarding

Solutions for automatically detecting, managing and securing privileged accounts in AWS EC2
Apache License 2.0
40 stars 32 forks source link

Automatic Deployment on Python v3.6+ errors on futures dep #24

Open infamousjoeg opened 4 years ago

infamousjoeg commented 4 years ago

When attempting to install requirements.txt on Python v3.6+, an error occurs due to no Python 3 compatibility for the futures module.

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 126, in <module>
    main()
  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 118, in main
    _main(parsed.pre, parsed.clear, parsed.verbose, parsed.system,
  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 78, in _main
    results = resolve(
  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 61, in resolve
    return resolve_deps(
  File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 718, in resolve_deps
    resolved_tree, hashes, markers_lookup, resolver = actually_resolve_deps(
  File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
    resolved_tree = resolver.resolve()
  File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 385, in resolve
    results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round
    for dep in self._iter_dependencies(best_match):
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies
    dependencies = self.repository.get_dependencies(ireq)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies
    legacy_results = self.get_legacy_dependencies(ireq)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies
    results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs
    results = resolver._resolve_one(reqset, ireq)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 274, in _resolve_one
    self.requires_python = check_dist_requires_python(dist, absorb=False)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/utils/packaging.py", line 58, in check_dist_requires_python
    raise exceptions.UnsupportedPythonVersion(
pipenv.patched.notpip._internal.exceptions.UnsupportedPythonVersion: futures requires Python '>=2.6, <3' but the running Python is 3.8.1
File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 126, in <module>
    main()
  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 118, in main
    _main(parsed.pre, parsed.clear, parsed.verbose, parsed.system,
  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 78, in _main
    results = resolve(
  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 61, in resolve
    return resolve_deps(
  File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 718, in resolve_deps
    resolved_tree, hashes, markers_lookup, resolver = actually_resolve_deps(
  File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
    resolved_tree = resolver.resolve()
  File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 385, in resolve
    results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round
    for dep in self._iter_dependencies(best_match):
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies
    dependencies = self.repository.get_dependencies(ireq)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies
    legacy_results = self.get_legacy_dependencies(ireq)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies
    results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs
    results = resolver._resolve_one(reqset, ireq)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 274, in _resolve_one
    self.requires_python = check_dist_requires_python(dist, absorb=False)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/utils/packaging.py", line 58, in check_dist_requires_python
    raise exceptions.UnsupportedPythonVersion(
pipenv.patched.notpip._internal.exceptions.UnsupportedPythonVersion: futures requires Python '>=2.6, <3' but the running Python is 3.8.1
infamousjoeg commented 4 years ago

Previous error occurred when running pipenv --python 3.8 && pipenv install.

This error occurs when running pipenv run pip install -r requirements.txt:

╰ pipenv run pip install -r requirements.txt
Collecting boto3==1.4.7
  Downloading boto3-1.4.7-py2.py3-none-any.whl (128 kB)
     |████████████████████████████████| 128 kB 940 kB/s
Collecting botocore==1.7.48
  Downloading botocore-1.7.48-py2.py3-none-any.whl (3.7 MB)
     |████████████████████████████████| 3.7 MB 1.4 MB/s
Collecting certifi==2017.7.27.1
  Downloading certifi-2017.7.27.1-py2.py3-none-any.whl (349 kB)
     |████████████████████████████████| 349 kB 7.6 MB/s
Collecting cfnresponse==1.0.2
  Downloading cfnresponse-1.0.2-py2.py3-none-any.whl (2.8 kB)
Collecting chardet==3.0.4
  Using cached chardet-3.0.4-py2.py3-none-any.whl (133 kB)
Collecting docutils==0.15.2
  Using cached docutils-0.15.2-py3-none-any.whl (547 kB)
Collecting dynamo-lock==0.1.1
  Downloading dynamo_lock-0.1.1.tar.gz (2.9 kB)
ERROR: Could not find a version that satisfies the requirement futures==3.3.0 (from -r requirements.txt (line 8)) (from versions: 0.2.python3, 0.1, 0.2, 1.0, 2.0, 2.1, 2.1.1, 2.1.2, 2.1.3, 2.1.4, 2.1.5, 2.1.6, 2.2.0, 3.0.0, 3.0.1, 3.0.2, 3.0.3, 3.0.4, 3.0.5, 3.1.0, 3.1.1)
ERROR: No matching distribution found for futures==3.3.0 (from -r requirements.txt (line 8))
sgnn7 commented 4 years ago

I think this is just due to the fact that this codebase can only run on Python2. From futures docs here:

It does not work on Python 3 due to Python 2 syntax being used in the codebase. Python 3
users should not attempt to install it, since the package is already included in the standard library.
infamousjoeg commented 4 years ago

Ok, so remove it from requirements.txt and continue forth... got it! Thanks @sgnn7!