Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Installing socketio module on python3 seems to be corrupting pip

While installing the socketio package for python using pip3 install socketio, I got the following results:

ERROR: launchpadlib 1.10.13 requires testresources, which is not installed.

WARNING: The scripts easy_install and easy_install-3.8 are installed in '/home/bill/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

Successfully installed netifaces-0.10.6 setuptools-3.3 socketio-0.2.1

Although I was able to import socketio successfully, pip3 seems corrupted(?). Specifically, when trying to run anything including pip3, even pip3 by itself in the terminal, I get the same error:

Traceback (most recent call last):
  File "/usr/bin/pip3", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/home/<username>/.local/lib/python3.8/site-packages/pkg_resources.py", line 1479, in <module>
    register_loader_type(importlib_bootstrap.SourceFileLoader, DefaultProvider)
AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 144, in apport_excepthook
    with os.fdopen(os.open(pr_filename,
FileNotFoundError: [Errno 2] No such file or directory: '/var/crash/_usr_bin_pip3.1000.crash'

Original exception was:
Traceback (most recent call last):
  File "/usr/bin/pip3", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/home/<username>/.local/lib/python3.8/site-packages/pkg_resources.py", line 1479, in <module>
    register_loader_type(importlib_bootstrap.SourceFileLoader, DefaultProvider)
AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'

I tried reinstalling pip3 but it didn't help. I migrated from ubuntu to mint thinking it is something buggy with the distribution but same results. I also corrupted ubuntu when I tried to remove python and reinstall it since I couldn't use pip, but, you know what they say, live and learn. Edit: Nothing on using pip3: module "importlib._bootstrap" has no attribute "SourceFileLoader" works for me.

I am currently using linux mint 20, but I experienced the same problem on ubuntu 20.04 and 20.04.1.

Any ideas would be appreciated!

like image 604
Bill TheKid Avatar asked Aug 12 '20 21:08

Bill TheKid


Video Answer


2 Answers

Perhaps you meant this socketio instead?: https://pypi.org/project/python-socketio

python3 -m pip install python-socketio

The package literally named "socketio" seems like it may simply be old and unsupported1, while "python-socketio" seems alive and developed 2 3

To that end, it's often valuable to take a look at similar packages and also to watch out for typosquatting et al. when installing packages via pip!

like image 73
ti7 Avatar answered Sep 30 '22 20:09

ti7


Edit: Martijn Peters makes a good point that this is the socketio you are looking for: https://pypi.org/project/python-socketio Read on if you need a solution for the original one you posted about.

Summary: pip3 install git+https://github.com/allenmcgehee/socketio-0.2.1-patched

I was able to reproduce this in a docker container running ubuntu:20.04 exactly as you described which gave me some hope that I could help out.

I found that socketio had a dependency for setuptools==3.3 which seemed odd to me, but lines up with why the core functionality of pip was breaking after installing socketio.

I am not sure where this package is maintained as there is no git repo referenced. I did find a Russion website in the PKG-INFO, but I wasn't sure where to go from there...

Here is a version of socketio with a requirement of setuptools>=42 so that nothing gets broken: https://github.com/allenmcgehee/socketio-0.2.1-patched

And finally, here is the single command that should install socketio for you without breaking pip: pip3 install git+https://github.com/allenmcgehee/socketio-0.2.1-patched

**I am assuming you've already fixed pip.

like image 35
Allen M Avatar answered Sep 30 '22 20:09

Allen M