'importlib._bootstrap' has no attribute 'SourceLoader'

mmm there might be a bug there looking at the source code:

if sys.version_info[:2] < (3, 1):
    bytecode = imp.get_magic() + struct.pack("<i", 0)
    bytecode += marshal.dumps(compile(source_code, compile_filename, "exec"))
elif sys.version_info[:2] < (3, 4):
    bytecode = imp.get_magic() + struct.pack("<ii", 0, 0)
    bytecode += marshal.dumps(compile(source_code, compile_filename, "exec"))
else:
    loader = importlib._bootstrap.SourceLoader()    
    code = loader.source_to_code(source_code, '<string>')
    bytecode = importlib._bootstrap._code_to_bytecode(code, mtime=0, source_size=0)

Can you try to replace that line with:

loader = importlib._bootstrap_external.SourceLoader()

If that works then try using a lesser version than 3.5 and submit a bug in their github issue page.


I ran into this same problem today.

Running the following commands in terminal resolved my problem.

➜  ~ pip install --upgrade pip
➜  ~ pip install --upgrade virtualenvwrapper
➜  ~ mkvirtualenv -p /usr/local/bin/python3 test_env

I was able to fix the issue by running:

pip3 uninstall setuptools
pip3 install setuptools