Обновлен Ubuntu до 19.04 - pip сломался в virtualenvs (проблема distutils) - PullRequest
0 голосов
/ 20 сентября 2019

Я обновил свой Ubuntu с 16.04 до 18.04, а затем до 19.04.Я заметил, что мои virtualenvs перестали работать и обнаружили проблему в distutils.

Я установил python3-distutils, и я могу нормально запустить python3> import distutils, потому что это относится к Python 3.7.

Я также могу сделать то же самое с Python (2.7).

Проблема в том, что многие мои envs являются python 3.6 , где, если я запускаю import distutils, я получаю:

Python 3.6.3 (default, Oct  6 2017, 08:44:35) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import distutils
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/emihir0/mjartan/lib/python3.6/distutils/__init__.py", line 25, in <module>
    from distutils import dist, sysconfig
ImportError: cannot import name 'dist'
>>> 

Как я могу решить эту проблему?

То же самое касается и того, когда я пытаюсь создать новый венв с помощью pycharm.Я могу сделать новый venv для 3.7 и 2.7, но как только я пытаюсь сделать 3.6, я получаю:

Traceback (most recent call last):
  File "/tmp/tmpb_tuwex1pycharm-management/setuptools-40.8.0/setup.py", line 11, in <module>
    import setuptools
  File "/tmp/tmpb_tuwex1pycharm-management/setuptools-40.8.0/setuptools/__init__.py", line 6, in <module>
    import distutils.core
ModuleNotFoundError: No module named 'distutils.core'

И, конечно же, главная проблема, конечно, в том, что когда я пытаюсь просто запустить pip в моем virtualenv я получаю:

Traceback (most recent call last):
  File "/home/emihir0/venv_name/bin/pip", line 7, in <module>
    from pip._internal import main
  File "/home/emihir0/venv_name/lib/python3.6/site-packages/pip/_internal/__init__.py", line 40, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/home/emihir0/venv_name/lib/python3.6/site-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/home/emihir0/venv_name/lib/python3.6/site-packages/pip/_internal/cli/main_parser.py", line 8, in <module>
    from pip._internal.cli import cmdoptions
  File "/home/emihir0/venv_name/lib/python3.6/site-packages/pip/_internal/cli/cmdoptions.py", line 17, in <module>
    from pip._internal.locations import USER_CACHE_DIR, src_prefix
  File "/home/emihir0/venv_name/lib/python3.6/site-packages/pip/_internal/locations.py", line 10, in <module>
    from distutils import sysconfig as distutils_sysconfig
  File "/home/emihir0/venv_name/lib/python3.6/distutils/__init__.py", line 25, in <module>
    from distutils import dist, sysconfig
ImportError: cannot import name 'dist'

РЕДАКТИРОВАТЬ: я исправил это путем понижения моего python3-distutils до: https://ubuntu.pkgs.org/18.04/ubuntu-main-i386/python3-distutils_3.6.5-3_all.deb.html

Однако, это не правильное решение,Как правильно это исправить?

...