Điều này không gây ra cho tôi bất kỳ sự cố nào mà tôi không thể giải quyết bằng cách kích hoạt môi trường ảo và chạy pip install -U pip
, nhưng tôi luôn tự hỏi phiên bản cũ của pip đến từ đâu.Tại sao 'python3 -m venv myenv' cài đặt phiên bản pip cũ hơn vào myenv so với bất kỳ phiên bản pip nào tôi có thể tìm thấy ở bất kỳ đâu trên hệ thống?
Tôi đang sử dụng OS X 10.7.5. Khi tôi tạo một môi trường ảo bằng cách sử dụng pyvenv-3.4 myenv
hoặc python3 -m venv myenv
, phiên bản của pip được cài đặt bên trong môi trường ảo là 6.0.8, nhưng tôi đã nâng cấp pip toàn cục của mình lên 6.1.1.
Đây là một phiên terminal chứng minh những gì tôi có nghĩa là:
$ python3 -m venv myenv
$ myenv/bin/pip -V
pip 6.0.8 from /Users/dust/Desktop/myenv/lib/python3.4/site-packages (python 3.4)
Dưới đây là những gì tôi muốn xảy ra:
$ source myenv/bin/activate
(myenv)$ pip -V
UPDATED SYSTEM VERSION HERE WOULD BE NICE
tôi không thể tìm thấy một pip 6.0.8 bất cứ nơi nào khác, khác với những gì được tạo bên trong môi trường ảo.
Sau đây là các kết quả đầu ra của các lệnh khác nhau mà tôi có sử dụng để thử và con số này ra:
$ which pip
/Library/Frameworks/Python.framework/Versions/3.4/bin/pip
$ which pip3
/Library/Frameworks/Python.framework/Versions/3.4/bin/pip3
$ pip -V
pip 6.1.1 from /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages (python 3.4)
$ pip3 -V
pip 6.1.1 from /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages (python 3.4)
Tôi thậm chí đã cố gắng sử dụng find:
$ find/-type f -name pip 2>&1 | awk '! /^f.*$/'
/Library/Frameworks/Python.framework/Versions/3.4/bin/pip
/usr/local/bin/pip
$ find/-type f -name pip3 2>&1 | awk '! /^f.*$/'
/Library/Frameworks/Python.framework/Versions/3.4/bin/pip3
Tôi nghĩ có lẽ rằng /usr/local/bin/pip
có thể có là thủ phạm, nhưng không:
$ /usr/local/bin/pip -V
pip 6.1.1 from /Library/Python/2.7/site-packages/pip-6.1.1-py2.7.egg (python 2.7)
Hmm. Có lẽ hệ điều hành X python có nó?
$ /usr/bin/python
>>> import pip
>>> pip.__version__
'6.1.1'
6.1.1 được báo cáo không có vấn đề phân phối của python Tôi hỏi, cho dù đó là OS X 2.7.1, python.org của 2.7.9, hoặc python.org của 3.4.3.
Có thể (hoặc khuyến khích) cập nhật phiên bản pip được đưa vào môi trường ảo không?
Oh! Tôi quên mất 'ensurepip''! Sau khi tôi đọc tài liệu ensurepip mà bạn đã tham chiếu, nơi tôi được gửi đến PEP-453 để biết thêm thông tin, [phần này trong PEP 453] (https://www.python.org/dev/peps/pep-0453/#updating- the-private-copy-of-pip) đã cho tôi một số hiểu biết rằng có những lý do cho hành vi, vì vậy tôi không còn sợ rằng tôi đã cài đặt python bị hỏng. – dusty