Проблемы использования zsh с Catalina, Python / Python3, pip / pip3, PATH, zshrc и т. Д.


14

Я недавно обновился до Каталины и по умолчанию zsh. Я, вероятно, перепутал пути во время перехода, и в настоящее время я пытаюсь разобраться в расположении Python3.7, pip3, командной строки PATH и моего файла zshrc.

Похоже, что в / usr / bin, / usr / local / bin, / usr / local / Cellar / python и /Users/[user]/.local/bin есть потенциально избыточные файлы

Ниже приведены репродукции команд:

$ which python3
/usr/bin/python3
$ which python
/usr/bin/python
$ which pip
pip not found
$ which pip3
/usr/bin/pip3
$ pip3 -V
Traceback (most recent call last):
  File "/Library/Developer/CommandLineTools/usr/bin/pip3", line 10, in <module>
    sys.exit(main())
TypeError: 'module' object is not callable
$ cat ~/.zshrc
export PATH=$PATH:/usr/local/bin:/usr/bin
$ echo $PATH
/Users/[user]/.local/bin:/bin:/usr/bin:/usr/local/bin:/Users/[user]/anaconda3/bin:/Users/[user]/anaconda3/bin:/Users/[user]/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/[user]/anaconda3:/Library/TeX/texbin:/usr/local/share/dotnet:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Xamarin Workbooks.app/Contents/SharedSupport/path-bin:/usr/local/bin:/usr/bin:/usr/local/bin:/usr/bin

Может ли кто-нибудь помочь мне устранить все это? Из того, что я понимаю: мне нужен только Python2.x для ОС; с каталиной я должен теперь хранить Python3.x только внутри моего пользователя (не в / usr)? pip3 автоматически устанавливается с Python3.x (хотя мой возвращает ошибку), а также должен быть установлен внутри моего пользователя, а не в / usr? Кроме того, мой $ PATH по-прежнему содержит остатки, например, Anaconda, которую я с тех пор удалил ... как / где мне обновить мой $ PATH? В файле zshrc?


Кажется, что независимо от правок (например, я удалил anaconda из моего файла / etc / paths, потому что я его больше не использую), какой python и какой python3 указывают на / usr / bin вместо другого местоположения.
OJT

1
which -aпокажет вам все возможные пути в том порядке, в котором они отображаются PATH. Эта информация может оказаться полезной.
Chepner

Я испытываю ту же проблему после обновления pipс использованием sudo pip3 install ---upgrade pipна Catalina. Однако использование python3 -m pipsitll работает. Вы можете использовать это в качестве обходного пути.
Джонас Дротлефф

Ответы:


8

Я столкнулся с этой проблемой после чистой установки Catalina. Я тоже использую zsh.

Что я сделал не так

Я установил новую версию pipс помощью:

sudo pip3 install --upgrade pip

как подсказано. Тем не менее, это не будет работать с Apple python, так как путь не будет правильным. Вместо этого sudo -Hследует использовать.

Как я исправил пипс:

К счастью, python3 -m pipвсе еще работает как обходной путь для pip3.

Установите более старую версию pip(в моем случае 19.3.0было достаточно):

sudo -H python3 -m pip install --upgrade pip==19.3.0

и затем обновите снова:

sudo -H python3 -m pip install --upgrade pip

Я надеюсь, что это также решит вашу проблему.


0

У меня была такая же проблема, как и у вас. Решено с

brew install python3

1
Точно такая же настройка и ошибка, как у OP, не решаемая этим.
Мелка

0

Я решил проблему, удалив ~ / Library / Python.


Пожалуйста, всякий раз, когда вы отвечаете на вопрос или добавляете какой-либо комментарий, убедитесь, что он находится в таком формате, который понятен другим людям и имеет смысл, если в него входит новый пользователь.
ashwin agrawal

0

Я также работал над этой проблемой на новой установке MacOS Catalina с Китти emulator + ohmyzsh.

Чтение этого вопроса привело меня к моему, .zshrcкоторый еще прокомментировал

\#export PATH=$HOME/bin:/usr/local/bin:$PATH

Я удалил комментарий, который добавил $ HOME / bin в PATH

~/.zshrc

export PATH=$HOME/bin:/usr/local/bin:$PATH

Это изменение позволило мне успешно выполнить pip3команду без ошибки трассировки.


0

У меня была аналогичная проблема. Ты можешь использовать

rehash

в вашей командной строке, чтобы обновить ваши пути. Это решило проблему для меня.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.