Неправильная установка python на macOS.Как я могу восстановить? - PullRequest
0 голосов
/ 21 мая 2018

Я использую macOS High Sierra.Раньше в какой-то момент я устанавливал Python через brew, но по какой-то причине (я не знаю) pip не работал:

$ pip --version Traceback (most recent call last):
File "/usr/local/opt/python2/libexec/bin/pip", line 6, in <module>
  from pkg_resources import load_entry_point
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3195, in <module>
  @_call_aside
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3179, in _call_aside
  f(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3208, in _initialize_master_working_set
  working_set = WorkingSet._build_master()
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 683, in _build_master
  return cls._build_from_requirements(__requires__)
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 696, in _build_from_requirements
  dists = ws.resolve(reqs, Environment())
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 885, in resolve
  raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pip==9.0.1' distribution was not found and is required by the application

Поэтому я выдал:

$ brew uninstall python@2
Uninstalling /usr/local/Cellar/python@2/2.7.14_1... (3,622 files, 50.6MB)

После чего я остался с тем, что я предполагаю, это установка по умолчанию python

$ which python
/usr/bin/python

К сожалению, я не могу запустить Python, просто набрав python:

$ python --version
-bash: /usr/local/opt/python2/libexec/bin/python: No such file or directory

однако я может запустить этот интерпретатор python, обратившись к нему напрямую:

$ /usr/bin/python --version
Python 2.7.10

Меня беспокоило, что python --version не сработало, и я подумал, было ли это следствием того, что раньше он пил кофеУстановленная версия Python здесь.Поэтому я решил переустановить, используя brew install python@2, что удалось.

Предполагаемое расположение python изменилось:

$ which python
/usr/local/bin/python

, но я все еще получаю ту же ошибку, когда пытаюсь его использовать:

$ python --version
-bash: /usr/local/opt/python2/libexec/bin/python: No such file or directory

Конечно, использование полного пути к интерпретатору python работает нормально:

$ /usr/local/bin/python --version
Python 2.7.15

Может кто-нибудь помочь мне определить причину сбоя при выдаче python с * 1034?*, хотя which python утверждает, что python находится в /usr/local/bin/python?

Редактировать: Ответчик запросил вывод при выполнении file, вот этот вывод:

$ file /usr/bin/python
/usr/bin/python: Mach-O universal binary with 2 architectures: [i386:Mach-O executable i386] [x86_64:Mach-O 64-bit executable x86_64]
/usr/bin/python (for architecture i386):    Mach-O executable i386
/usr/bin/python (for architecture x86_64):  Mach-O 64-bit executable x86_64
$ file /usr/local/bin/python
/usr/local/bin/python: Mach-O 64-bit executable x86_64

Редактировать: Респондент запросил вывод brew doctor.Вот этот вывод:

Warning: Putting non-prefixed coreutils in your path can cause gmp builds to fail.

Warning: Unbrewed header files were found in /usr/local/include.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Warning: Broken symlinks were found. Remove them with `brew prune`:
  /usr/local/bin/apm
  /usr/local/bin/atom

Редактировать: Вывод PATH, интересно, что / usr / local / opt / python2 / libexec / bin там

$ echo $PATH
/usr/local/opt/coreutils/libexec/gnubin:/Applications/google-cloud-sdk/bin:/usr/local/opt/python2/libexec/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:/Applications/Wireshark.app/Contents/MacOS
$ ls /usr/local/opt/python2/libexec/bin
ls: cannot access '/usr/local/opt/python2/libexec/bin': No such file or directory
$ ls /usr/local/opt/python2/libexec
pip  setuptools  wheel

1 Ответ

0 голосов
/ 21 мая 2018

Решение, вероятно, состоит в том, чтобы просто удалить /usr/local/opt/python2/libexec/bin из вашей переменной среды PATH.

Для этого вам нужно отредактировать ~/.bash_profile и удалить вхождение этого каталога.

...