Я обновил свой 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
Однако, это не правильное решение,Как правильно это исправить?