-
Notifications
You must be signed in to change notification settings - Fork 18
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Issue Description
Cloudlift fails to run on Python 3.12 due to dependency issues related to the removed distutils module. The error manifests in two ways:
- Initially fails with
six.movesimport error. - After removing
sixdependency, fails with missingdistutilsmodule error.
Root Cause
distutilswas deprecated in Python 3.10 and removed in Python 3.12. See: https://docs.python.org/3.12/library/distutils.html#module-distutils.- Cloudlift uses
LooseVersionfromdistutilsincloudlift/config/environment_configuration.py(line 6)
Steps to Reproduce
- Create a Python 3.12 virtual environment
- Run
pip install . - Execute
cloudlift --version
Now if we remove six==1.10.0 from the dependencies, and then reinstall and run cloudlift version check, we get:
Solution
Add setuptools as a dependency, which provides the removed distutils functionality. With updated requirements.txt:
The changed requirements.txt file should look like the following:
boto3==1.34.111
awscli==1.32.111
certifi==2017.7.27.1
cfn-flip==1.0.3
chardet==3.0.4
click==6.7
colorclass==2.2.2
dictdiffer==0.7.0
docutils==0.14
future==0.16.0
futures==3.1.1
idna==2.6
jmespath==0.9.3
jsonschema==2.6.0
python-dateutil==2.8.2
requests>=2.20.0
stringcase==1.0.6
terminaltables==3.1.0
troposphere==4.5.2
awacs==2.4.0
botocore==1.34.111
setuptools==75.6.0 # Added to provide distutils functionality
# Removed: six==1.10.0Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working


