Làm cách nào để cài đặt phiên bản pip mới nhất khi tôi đã cài đặt Ubuntu cung cấp?


18

Trong Ubuntu 16.04 khi bạn làm:

pip install --upgrade pip

bạn lấy:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Đủ công bằng. Bây giờ cố gắng

pip install --upgrade pip

và bạn nhận được:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Vì vậy, làm thế nào để thực sự có được pip 8.1.2?


sudo -H pip install --upgrade piphoạt động không?
edwinksl

@edwinksl: nó cho kết quả giống như các lệnh khác.
dùng2413

Điều đó có vẻ lạ vì nó làm việc cho tôi. Có lẽ cần phải nộp một báo cáo lỗi.
edwinksl

@edwinksl: cảm ơn. Tôi sẽ đợi thêm một vài ngày nữa và làm điều đó>
user2413

1
@edwinksl Chỉ cần mở một vấn đề trong trường hợp bất cứ ai muốn theo dõi nó.
sethmlarson

Câu trả lời:


13

Nó không phải là một ý tưởng tốt để cập nhật python hệ thống trừ khi bạn thực sự đang làm việc trên mã ubfox và có một lý do cụ thể. Có rất nhiều phụ thuộc hệ thống mà bạn có thể phá vỡ bằng cách cập nhật bằng pip thay vì sử dụng lib python trong kho APT.

Nếu bạn đang phát triển các ứng dụng python và cần thay đổi các phiên bản của thư viện thì bạn nên sử dụng tùy chọn --user cho pip hoặc tạo virtualenv để lưu trữ các phiên bản lib của người dùng.

Cả hai phương pháp này sẽ quay trở lại sử dụng libs hệ thống một cách duyên dáng nếu chúng không có bản sao của riêng chúng, virtualenv có nhiều tùy chọn hơn về cách kiểm soát phản hồi đó.

pip với --user

Điều này dễ dàng như chỉ cần thêm --user vào cuối tất cả các lệnh pip của bạn, điều này sẽ đưa libs python của bạn vào ~ / .local / lib / pythonX.X (trong đó XX là số phiên bản python của bạn), chúng sẽ được xem Trước tiên, hãy cẩn thận khi thực hiện việc này cho root nếu bạn phải chạy qua sudo vì nó có thể ảnh hưởng đến hệ thống python.

virtualenv

Điều này hoạt động theo cách tương tự như ở trên nhưng ít ràng buộc hơn với một người dùng cụ thể nên không có giới hạn sudo, bạn cũng có thể sao chép virtualenv và nâng cấp nó để kiểm tra các thay đổi do đó cho phép bạn hoàn nguyên nếu nó bị hỏng. http://docs.python-guide.org/en/latest/dev/virtualenvs/


1
Bạn thực sự muốn cài đặt alt python nếu bạn muốn 2.7, vì vậy bạn sẽ không can thiệp vào python OS. Từ đó, bạn cần cập nhật pip trong cài đặt alt trước venv. Bạn cũng muốn --no-cache-dir để ngăn phiên bản được lưu trong bộ nhớ cache.
Wyrmwood

Cập nhật pip không tác động tiêu cực (dù sao đi nữa) python 2.7 được mặc định vận chuyển.
Bị ảnh hưởng

10

Có vẻ như đây có thể là một vấn đề với việc cài đặt tệp .whl cho pip8.1.2. Cách khắc phục để cài đặt pip8.1.2 là tải xuống nguồn trực tiếp từ PyPi và cài đặt qua setup.py.

Sau đây làm việc cho tôi:

wget https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz
tar -xzvf pip-8.1.2.tar.gz
cd pip-8.1.2
sudo python setup.py install

Tất nhiên đây không phải là một giải pháp để cài đặt pip 8.1.2 thông qua pip install --upgrade, nhưng nên xóa bỏ cảnh báo cho đến khi vấn đề này được giải quyết .


Có một nhận xét về chủ đề đó cho thấy rằng điều này một phần liên quan đến ubfox vá phiên bản pip được đóng gói của họ để ngăn chặn việc nâng cấp các gói cài đặt apt.
Amias

5

sudo -H python -m pip install --upgrade pipsẽ giải quyết vấn đề của bạn. Như ai đó đã đề cập ở trên mặc dù hệ thống cụ thể yêu cầu python 2.7 cho một số thứ nhất định ... Điều đó có nghĩa là bạn có thể nâng cấp pip mà không ảnh hưởng tiêu cực đến điều đó nhưng bạn cũng có thể cài đặt 3.5 cùng nếu bạn muốn.

những -Hlà một lá cờ cho sudoyêu cầu rằng các chính sách bảo mật thiết lập các biến môi trường HOME để thư mục chủ được chỉ định bởi mục cơ sở dữ liệu mật khẩu của người dùng mục tiêu. Tùy thuộc vào chính sách, đây có thể là hành vi mặc định.


Nếu ai đó muốn downvote một bài viết suy nghĩ như thế này, bạn thực sự nên nói tại sao Đây là hình thức kém.
javadba

Bởi vì họ đang tức giận và cần trút giận lên ai đó. Tức giận với những gì bạn yêu cầu, cuộc sống nói chung. tràn ngăn xếp đã biến thành không có gì ngoài một nơi để đến và bị quấy rối.
Bị ảnh hưởng vào

2

Gỡ cài đặt pip bằng apt-get và cài đặt nó bằng easy_install. Nó làm việc cho tôi.

sudo apt-get remove python-pip
sudo easy_install pip

easy_install thất bại. Tôi nhận được bash: /usr/bin/pip: No such file or directory. Và tôi cũng không thể thanh lọc pip. Tôi hy vọng điều này đã không hoàn toàn phá vỡ pip trên máy của tôi.
Dean Schulze
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.