Các sự cố khi sử dụng zsh với Catalina, Python / Python3, pip / pip3, PATH, zshrc, v.v.


14

Gần đây tôi đã cập nhật lên Catalina và zsh mặc định. Có lẽ tôi đã làm rối các đường dẫn trong quá trình chuyển đổi và hiện tôi đang cố gắng sắp xếp các vị trí của Python3.7, pip3, PATH dòng lệnh và tệp zshrc của tôi.

Dường như có các tệp dự phòng có khả năng chứa trong / usr / bin, / usr / local / bin, / usr / local / Cellar / python và /Users/[user[/.local/bin

Sau đây là bản sao lại các lệnh:

$ 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

Bất cứ ai có thể giúp tôi khắc phục tất cả điều này? Từ những gì tôi hiểu: Tôi chỉ cần Python2.x cho HĐH; với Catalina tôi bây giờ sẽ được lưu trữ Python3.x chỉ trong tài khoản của tôi (không phải trong / usr)? Pip3 được cài đặt tự động với Python3.x (mặc dù lỗi của tôi đang trả về lỗi) và cũng nên được cài đặt trong Người dùng của tôi chứ không phải trong / usr? Ngoài ra, $ PATH của tôi vẫn còn sót lại, ví dụ: Anaconda, mà tôi đã gỡ bỏ ... làm thế nào / ở đâu để tôi cập nhật $ PATH của mình? Trong tập tin zshrc?


Dường như bất kể các chỉnh sửa nào (ví dụ: tôi đã xóa anaconda khỏi tệp / etc / path vì tôi không còn sử dụng nó nữa), python và python3 nào trỏ đến / usr / bin thay vì vị trí khác.
OJT

1
which -asẽ hiển thị cho bạn tất cả các đường dẫn có thể phù hợp, theo thứ tự chúng xuất hiện PATH. Thông tin đó có thể hữu ích.
chepner

Tôi đang gặp vấn đề tương tự sau khi cập nhật pipsử dụng sudo pip3 install ---upgrade piptrên Catalina. Tuy nhiên, sử dụng python3 -m pipsitll hoạt động. Bạn có thể sử dụng điều này như một cách giải quyết.
Jonas Drotleff

Câu trả lời:


8

Tôi đã gặp vấn đề này sau khi cài đặt sạch Catalina. Tôi cũng đang sử dụng zsh.

Tôi đã làm sai điều gì:

Tôi đã cài đặt phiên bản mới pipbằng cách sử dụng:

sudo pip3 install --upgrade pip

như được nhắc. Tuy nhiên, điều này sẽ không hoạt động với Apple python, vì đường dẫn sẽ không chính xác. Thay vào đó, sudo -Hnên được sử dụng.

Làm thế nào tôi cố định pip:

May mắn thay, python3 -m pipvẫn hoạt động như một cách giải quyết pip3.

Cài đặt phiên bản cũ hơn pip(trong trường hợp của tôi, 19.3.0là đủ):

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

và sau đó nâng cấp lại:

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

Tôi hy vọng điều này cũng sẽ giải quyết vấn đề của bạn.


0

Tôi đã có cùng một vấn đề như bạn. Giải quyết với

brew install python3

1
Chính xác thiết lập và lỗi tương tự như OP, không được giải quyết bằng cách này.
Melka

0

Tôi đã giải quyết vấn đề bằng cách xóa ~ / Library / Python.


Vui lòng bất cứ khi nào bạn trả lời một câu hỏi hoặc thêm bất kỳ nhận xét nào, hãy đảm bảo rằng đó là định dạng dễ hiểu bởi những người khác và có ý nghĩa, nếu một người dùng mới đến.
ashwin agrawal

0

Tôi cũng đang gặp vấn đề này trên bản cài đặt MacOS Catalina mới với thuật ngữ Kitty emulator + ohmyzsh.

Đọc câu hỏi này đã dẫn tôi đến .zshrcmà vẫn có dòng bình luận

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

Tôi đã xóa nhận xét, đã thêm $ HOME / bin vào PATH

~/.zshrc

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

Thay đổi này cho phép tôi chạy thành công pip3lệnh mà không gặp lỗi truy nguyên.


0

Tôi đã có một vấn đề tương tự. Bạn có thể dùng

rehash

trong dòng lệnh của bạn để cập nhật đường dẫn của bạn. Nó giải quyết vấn đề cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.