PIP (Python) : ImportError: cannot import name _remove_dead_weakref

别来无恙 提交于 2019-12-03 13:25:37

I have encountered the similar issue on my macOS X when I run lldb from the terminal. The error message is the following,

16:55 $ lldb
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/usr/local/Cellar/python@2/2.7.14_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 52, in <module>
    import weakref
File "/usr/local/Cellar/python@2/2.7.14_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/weakref.py", line 14, in <module>
from _weakref import (
ImportError: cannot import name _remove_dead_weakref

The error message is quite similar with yours. This is what I solved on my macOS X.

$ brew list
...<many libraries>
python@  <The one has conflicted with my python3.6>

$ brew remove python@2 --ignore-dependencies
Uninstalling /usr/local/Cellar/python@2/2.7.14_3... (4,662 files, 82.8MB)

I think the problem is caused by the system installed python, which conflicts with personally installed python. After I removed my python2.7 and lldb works well. I hope it will give you some idea, although we are running on a different OS.


To manage different version of python, I recommend you to install pyenv, see here. It can easily switch the different versions of your python.

I'm pretty sure the reason for this error is how you're installing python and that you've most likely copied your installation from somewhere else .. or you're renaming folders .. or you've an invalid python installation in your environmental path.

If you're looking to copy the python folder about, don't install it 'for all users' .. just install it to your folder for your 'logged in user only'.

So your solution should be either

  1. install python again pointing to your location c:\python27 or
  2. install python using the 'install just for this user' .. then copy from it to your c:\python27 .. you might be interested in pipenv and virtualenv (google search for them)

Also, you can run pip using

python -m pip install <module_to_install>

This is the same as running

pip.exe install <module_to_install>

You could try using the full path for python to see if it runs pip ok. eg. c:\python27\python.exe -m pip install <module_to_install>

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!