Skip to content

sam build failing to resolve dependencies {simplejson==3.17.0(wheel), python-levenshtein==0.12.0(sdist)} #1730

@NTonani

Description

@NTonani

Description

Build is failing to resolve a couple dependencies:
{simplejson==3.17.0(wheel), python-levenshtein==0.12.0(sdist)}
I am using pipenv / requirements.txt to manage.

If I run in container, it succeeds. That along with the many suggestions in other issues leads to pip / python mismatch.

pip --version
pip 19.3.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
python --version
Python 3.7.6
sam --version
SAM CLI, version 0.40.0

If I manually run pip download -r /Users/ntonani/workplace/kopa/kopa_serverless/kopa-message-receiver/src/requirements.txt --dest /var/folders/59/dtdk2xg14n13v15zydzkqtwh0000gn/T/tmps99l0k96 - the failing command - it succeeds. This leads me to believe the pip used by SAM is different.

How do I find out which pip SAM is using?

Observed result

Running PythonPipBuilder:ResolveDependencies
calling pip download -r /Users/ntonani/workplace/kopa/kopa_serverless/kopa-message-receiver/src/requirements.txt --dest /var/folders/59/dtdk2xg14n13v15zydzkqtwh0000gn/T/tmps99l0k96
Full dependency closure: {docutils==0.15.2(wheel), chardet==3.0.4(wheel), idna==2.8(wheel), boto3==1.11.3(wheel), python-levenshtein==0.12.0(sdist), certifi==2019.11.28(wheel), setuptools==45.0.0(wheel), twilio==6.35.2(sdist), botocore==1.14.3(wheel), urllib3==1.25.7(wheel), fuzzywuzzy==0.17.0(wheel), simplejson==3.17.0(wheel), requests==2.22.0(wheel), s3transfer==0.3.0(wheel), python-dateutil==2.8.1(wheel), pyjwt==1.7.1(wheel), pytz==2019.3(wheel), six==1.14.0(wheel), jmespath==0.9.4(wheel)}
initial compatible: {pyjwt==1.7.1(wheel), requests==2.22.0(wheel), chardet==3.0.4(wheel), botocore==1.14.3(wheel), idna==2.8(wheel), urllib3==1.25.7(wheel), boto3==1.11.3(wheel), s3transfer==0.3.0(wheel), pytz==2019.3(wheel), python-dateutil==2.8.1(wheel), certifi==2019.11.28(wheel), fuzzywuzzy==0.17.0(wheel), six==1.14.0(wheel), jmespath==0.9.4(wheel), setuptools==45.0.0(wheel), docutils==0.15.2(wheel)}
initial incompatible: {simplejson==3.17.0(wheel), twilio==6.35.2(sdist), python-levenshtein==0.12.0(sdist)}
Downloading missing wheels: {twilio==6.35.2(sdist), simplejson==3.17.0(wheel), python-levenshtein==0.12.0(sdist)}
calling pip download --only-binary=:all: --no-deps --platform manylinux1_x86_64 --implementation cp --abi cp37m --dest /var/folders/59/dtdk2xg14n13v15zydzkqtwh0000gn/T/tmps99l0k96 twilio==6.35.2
calling pip download --only-binary=:all: --no-deps --platform manylinux1_x86_64 --implementation cp --abi cp37m --dest /var/folders/59/dtdk2xg14n13v15zydzkqtwh0000gn/T/tmps99l0k96 simplejson==3.17.0
calling pip download --only-binary=:all: --no-deps --platform manylinux1_x86_64 --implementation cp --abi cp37m --dest /var/folders/59/dtdk2xg14n13v15zydzkqtwh0000gn/T/tmps99l0k96 python-levenshtein==0.12.0
compatible wheels after second download pass: {pyjwt==1.7.1(wheel), requests==2.22.0(wheel), chardet==3.0.4(wheel), botocore==1.14.3(wheel), idna==2.8(wheel), urllib3==1.25.7(wheel), boto3==1.11.3(wheel), s3transfer==0.3.0(wheel), six==1.14.0(wheel), python-dateutil==2.8.1(wheel), fuzzywuzzy==0.17.0(wheel), jmespath==0.9.4(wheel), pytz==2019.3(wheel), certifi==2019.11.28(wheel), setuptools==45.0.0(wheel), docutils==0.15.2(wheel)}
Build missing wheels from sdists (C compiling True): {twilio==6.35.2(sdist), python-levenshtein==0.12.0(sdist)}
calling pip wheel --no-deps --wheel-dir /var/folders/59/dtdk2xg14n13v15zydzkqtwh0000gn/T/tmps99l0k96 /var/folders/59/dtdk2xg14n13v15zydzkqtwh0000gn/T/tmps99l0k96/twilio-6.35.2.tar.gz
calling pip wheel --no-deps --wheel-dir /var/folders/59/dtdk2xg14n13v15zydzkqtwh0000gn/T/tmps99l0k96 /var/folders/59/dtdk2xg14n13v15zydzkqtwh0000gn/T/tmps99l0k96/python-Levenshtein-0.12.0.tar.gz
compatible after building wheels (no C compiling): {pyjwt==1.7.1(wheel), requests==2.22.0(wheel), chardet==3.0.4(wheel), twilio==6.35.2(wheel), botocore==1.14.3(wheel), idna==2.8(wheel), urllib3==1.25.7(wheel), boto3==1.11.3(wheel), s3transfer==0.3.0(wheel), six==1.14.0(wheel), python-dateutil==2.8.1(wheel), fuzzywuzzy==0.17.0(wheel), jmespath==0.9.4(wheel), pytz==2019.3(wheel), certifi==2019.11.28(wheel), setuptools==45.0.0(wheel), docutils==0.15.2(wheel)}
Build missing wheels from sdists (C compiling False): {python-levenshtein==0.12.0(sdist)}
calling pip wheel --no-deps --wheel-dir /var/folders/59/dtdk2xg14n13v15zydzkqtwh0000gn/T/tmps99l0k96 /var/folders/59/dtdk2xg14n13v15zydzkqtwh0000gn/T/tmps99l0k96/python-Levenshtein-0.12.0.tar.gz
compatible after building wheels (C compiling): {pyjwt==1.7.1(wheel), requests==2.22.0(wheel), chardet==3.0.4(wheel), twilio==6.35.2(wheel), botocore==1.14.3(wheel), idna==2.8(wheel), urllib3==1.25.7(wheel), boto3==1.11.3(wheel), s3transfer==0.3.0(wheel), six==1.14.0(wheel), python-dateutil==2.8.1(wheel), fuzzywuzzy==0.17.0(wheel), jmespath==0.9.4(wheel), pytz==2019.3(wheel), certifi==2019.11.28(wheel), setuptools==45.0.0(wheel), docutils==0.15.2(wheel)}
Final compatible: {docutils==0.15.2(wheel), requests==2.22.0(wheel), chardet==3.0.4(wheel), idna==2.8(wheel), boto3==1.11.3(wheel), s3transfer==0.3.0(wheel), python-dateutil==2.8.1(wheel), certifi==2019.11.28(wheel), setuptools==45.0.0(wheel), pyjwt==1.7.1(wheel), twilio==6.35.2(wheel), botocore==1.14.3(wheel), urllib3==1.25.7(wheel), pytz==2019.3(wheel), fuzzywuzzy==0.17.0(wheel), six==1.14.0(wheel), jmespath==0.9.4(wheel)}
Final incompatible: {simplejson==3.17.0(wheel), python-levenshtein==0.12.0(wheel)}
Final missing wheels: {simplejson==3.17.0(wheel), python-levenshtein==0.12.0(sdist)}
PythonPipBuilder:ResolveDependencies failed
Traceback (most recent call last):
  File "/usr/local/Cellar/aws-sam-cli/0.40.0/libexec/lib/python3.7/site-packages/aws_lambda_builders/workflows/python_pip/actions.py", line 39, in execute
    requirements_path=self.manifest_path
  File "/usr/local/Cellar/aws-sam-cli/0.40.0/libexec/lib/python3.7/site-packages/aws_lambda_builders/workflows/python_pip/packager.py", line 144, in build_dependencies
    requirements_path, artifacts_dir_path, scratch_dir_path)
  File "/usr/local/Cellar/aws-sam-cli/0.40.0/libexec/lib/python3.7/site-packages/aws_lambda_builders/workflows/python_pip/packager.py", line 213, in build_site_packages
    raise MissingDependencyError(packages_without_wheels)
aws_lambda_builders.workflows.python_pip.packager.MissingDependencyError: {simplejson==3.17.0(wheel), python-levenshtein==0.12.0(sdist)}

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/Cellar/aws-sam-cli/0.40.0/libexec/lib/python3.7/site-packages/aws_lambda_builders/workflow.py", line 248, in run
    action.execute()
  File "/usr/local/Cellar/aws-sam-cli/0.40.0/libexec/lib/python3.7/site-packages/aws_lambda_builders/workflows/python_pip/actions.py", line 42, in execute
    raise ActionFailedError(str(ex))
aws_lambda_builders.actions.ActionFailedError: {simplejson==3.17.0(wheel), python-levenshtein==0.12.0(sdist)}

Build Failed
Sending Telemetry: {'metrics': [{'commandRun': {'awsProfileProvided': False, 'debugFlagProvided': True, 'region': '', 'commandName': 'sam build', 'duration': 23124, 'exitReason': 'BuildError', 'exitCode': 1, 'requestId': '92353e64-20a6-4758-baa2-561816dfc34a', 'installationId': '09d46a47-ea3d-4637-a750-319c111aa184', 'sessionId': 'bcb4867a-958c-45dd-8647-40b19ad9a85b', 'executionEnvironment': 'CLI', 'pyversion': '3.7.6', 'samcliVersion': '0.40.0'}}]}
Telemetry response: 200
Error: PythonPipBuilder:ResolveDependencies - {simplejson==3.17.0(wheel), python-levenshtein==0.12.0(sdist)}

Expected result

sam build succeeds

Additional environment details (Ex: Windows, Mac, Amazon Linux etc)

  1. OS: macOS Catalina 10.15.2
  2. sam --version: 0.40.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions