truongleswe / export-dynamodb

Export Amazon DynamoDb to CSV or JSON
GNU General Public License v3.0
53 stars 9 forks source link

ImportError: cannot import name 'Mapping' from 'collections' #18

Open don1uppa opened 2 years ago

don1uppa commented 2 years ago

I'm using python 3.10 and installed all the requirements. The program fails immediatly on the import error, here is the stack trace:

C:\dci\data_migration\venv\Scripts\python.exe C:/dci/data_migration/exportdynamodb/entrypoints/main.py --profile dev -t Carriers -f csv -o carriers.csv Traceback (most recent call last): File "C:\dci\data_migration\exportdynamodb\entrypoints\main.py", line 7, in from boto3 import Session File "C:\dci\data_migration\venv\lib\site-packages\boto3__init.py", line 16, in from boto3.session import Session File "C:\dci\data_migration\venv\lib\site-packages\boto3\session.py", line 17, in import botocore.session File "C:\dci\data_migration\venv\lib\site-packages\botocore\session.py", line 25, in import botocore.configloader File "C:\dci\data_migration\venv\lib\site-packages\botocore\configloader.py", line 19, in from botocore.compat import six File "C:\dci\data_migration\venv\lib\site-packages\botocore\compat.py", line 25, in from botocore.exceptions import MD5UnavailableError File "C:\dci\data_migration\venv\lib\site-packages\botocore\exceptions.py", line 15, in from botocore.vendored.requests.exceptions import ConnectionError File "C:\dci\data_migration\venv\lib\site-packages\botocore\vendored\requests__init.py", line 58, in from . import utils File "C:\dci\data_migration\venv\lib\site-packages\botocore\vendored\requests\utils.py", line 26, in from .compat import parse_http_list as _parse_list_header File "C:\dci\data_migration\venv\lib\site-packages\botocore\vendored\requests\compat.py", line 7, in from .packages import chardet File "C:\dci\data_migration\venv\lib\site-packages\botocore\vendored\requests\packages__init__.py", line 3, in from . import urllib3 File "C:\dci\data_migration\venv\lib\site-packages\botocore\vendored\requests\packages\urllib3\init__.py", line 10, in from .connectionpool import ( File "C:\dci\data_migration\venv\lib\site-packages\botocore\vendored\requests\packages\urllib3\connectionpool.py", line 38, in from .response import HTTPResponse File "C:\dci\data_migration\venv\lib\site-packages\botocore\vendored\requests\packages\urllib3\response.py", line 9, in from ._collections import HTTPHeaderDict File "C:\dci\data_migration\venv\lib\site-packages\botocore\vendored\requests\packages\urllib3_collections.py", line 1, in from collections import Mapping, MutableMapping ImportError: cannot import name 'Mapping' from 'collections' (C:\Users\diuppa\AppData\Local\Programs\Python\Python310\lib\collections\init__.py)

Thoughts?

don1uppa commented 2 years ago

I did a search, I had success with Python 3.9.9.

make changes to main.py

Line 135: to eliminate blank lines in the output using windows with open(filename, 'w', newline='') as csvfile:

Line 140:

Module level execution section

if name == 'main': main()