Cách sử dụng pip với Python 3.x cùng với Python 2.x


196

Tôi đã cài đặt Python 3.x (ngoài Python 2.x trên Ubuntu) và từ từ bắt đầu ghép các mô-đun tôi sử dụng trong Python 2.x.

Vì vậy, tôi tự hỏi, tôi nên làm theo cách tiếp cận nào để làm cho cuộc sống của tôi dễ dàng bằng cách sử dụng pip cho cả Python 2.x và Python 3.x?


2
Cá nhân, tôi sẽ tránh cài đặt gói toàn cầu và sử dụng virtualenv. Sau đó, bạn sử dụng pip từ bên trong môi trường ảo của mình cho từng dự án và bạn luôn sử dụng đúng.
jpmc26

Câu trả lời:


183

Cách tiếp cận bạn nên thực hiện là cài đặt pipcho Python 3.2.

Bạn làm điều này theo cách sau:

$ curl -O https://bootstrap.pypa.io/get-pip.py
$ sudo python3.2 get-pip.py

Sau đó, bạn có thể cài đặt mọi thứ cho Python 3.2 pip-3.2và cài đặt mọi thứ cho Python 2-7 với pip-2.7. Các piplệnh sẽ kết thúc trỏ đến một trong số này, nhưng tôi không chắc chắn mà, do đó bạn sẽ phải kiểm tra.


9
Điều này thật dễ dàng, cảm ơn. sudo python3.2 get-pip.pycài đặt pippip-3.2tập lệnh trong /usr/local/binvà cả hai đều sử dụng Python 3. sudo python get-pip.pycài đặt pippip-2.7ở đây, vì vậy trong trường hợp này pipsử dụng Python 2.7. Tôi thêm tạo liên kết đến pip-3.2như pip3và thử nghiệm: Hoàn hảo! :)
theta

6
Trên Fedora, đó là pip3.3, nghĩa là không có dấu gạch ngang giữa pip và phiên bản. Kiểm tra /usr/binxem bạn có phiên bản pip nào ở đó.
Shailen

5
[x] Ubuntu cũng đang sử dụng [ pip2 | pip2.7 | pip3 | pip3.4 ]. Đây có phải là một sự thay đổi trong piphoặc khác nhau giữa các hệ thống khác nhau?
Jon Surrell 18/2/2015

Sau khi thực hiện tôi đã nhận đượcYou're using an outdated location for the get-pip.py script, please use the one available from https://bootstrap.pypa.io/get-pip.py
Kevin Brotcke

Vì vậy, làm điều đó sau đó. :-)
Lennart Regebro 3/2/2016

53

Những gì bạn cũng có thể làm là sử dụng apt-get:

apt-get install python3-pip

Theo kinh nghiệm của tôi, công việc này cũng khá trôi chảy, cộng với bạn nhận được tất cả lợi ích từ apt-get.


2
Vào ngày 12.04 tôi không thể làm điều này.
dranxo

15
Tôi đã sử dụng thành công cái này (tức là sudo apt-get install python3-pip) và sau đó có thể cài đặt các gói python3 bằng cách sử dụng "gói cài đặt sudo python3 -m pip".
Tom Slee

2
Cho đến hôm nay, tôi tin rằng apt-get giúp bạn có phiên bản 1.5.6 lỗi thời; nếu bạn không muốn có Ass AssErrror trong pip freeze > requirements(hoặc các lỗi tiềm ẩn khác), hãy cài đặt từ nguồn cho phiên bản mới nhất và tự cứu mình khỏi đau đầu.
Yibo Yang

phải là root để cài đặtpython3-pip
Florent

Mặc dù cài đặt pipbằng cách sử dụng python3.7 pipvẫn đang được sử dụng mặc định với Python 2.7 trên ubfox 14.04 :( Tôi đã quản lý để cập nhật pip lên phiên bản mới nhất, tức là 19.3.1 nhưng nó vẫn mặc định là python2.7. Cách sử dụng với python 3.7. ?
Nhà phát triển tò mò

48

Đầu tiên, cài đặt Python 3 pip bằng cách sử dụng:

sudo apt-get install python3-pip

Sau đó, để sử Python 3 pipdụng sử dụng:

pip3 install <module-name>

Để Python 2 pipsử dụng:

pip install <module-name>

4
Không có Python 2 pip, điều này phụ thuộc vào HĐH bạn đang sử dụng. Ví dụ trên pip --versioncác trạng thái Arch Linux đang chạy trên python 3.6 theo mặc định.
Daniel Andrei Mincă

đó có vẻ là giải pháp trực quan và dễ dàng nhất đối với tôi, cảm ơn!
gebbissimo

15

Nếu bạn không muốn phải chỉ định phiên bản mỗi lần bạn sử dụng pip :

Cài đặt pip:

$ curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python3

và xuất đường dẫn:

$ export PATH=/Library/Frameworks/Python.framework/Versions/<version number>/bin:$PATH

11
Bạn có thể giải thích? Tôi không thấy cách cài đặt phân phối có liên quan gì đến việc không phải chỉ định phiên bản pip bạn muốn sử dụng.
Piotr Dobrogost

13

Con đường ngắn nhất:

python3 -m pip install package
python -m pip install package

`` `(test-exif) alex @ alex-xps-13-9370: ~ / dự án / oe / app / exif $ python3 -m pip cài đặt exif / usr / bin / python3: Không có mô-đun có tên pip` ``
axd

@axd trong trường hợp đó trước tiên cài đặt pip bằng cách sử dụng sudo apt-get install python3-pip. Giả sử bạn đang sử dụng python3.
fiveelements

5

Điều này hoạt động với tôi trên OS X: (Tôi nói điều này bởi vì đôi khi thật đau đớn khi mac có phiên bản "của riêng nó" của mọi công cụ nguồn mở và bạn không thể xóa nó vì "những cải tiến của nó" làm cho nó trở nên độc đáo khi các công cụ táo khác hoạt động và nếu bạn loại bỏ nó, mọi thứ bắt đầu rơi xuống

Tôi đã làm theo các bước được cung cấp bởi @Lennart Regebro để lấy pip cho python 3, tuy nhiên pip cho python 2 vẫn là đầu tiên trên đường dẫn, vì vậy ... những gì tôi đã làm là tạo liên kết tượng trưng cho python 3 bên trong / usr / bin ( trong hành động tôi đã làm tương tự để có 2 con trăn của tôi chạy trong hòa bình):

ln -s /Library/Frameworks/Python.framework/Versions/3.4/bin/pip /usr/bin/pip3

Lưu ý rằng tôi đã thêm một 3ở cuối, vì vậy về cơ bản những gì bạn phải làm là sử dụng pip3thay vì chỉ pip.

Bài viết đã cũ nhưng tôi hy vọng điều này sẽ giúp ai đó một ngày nào đó. về mặt lý thuyết nên hoạt động cho bất kỳ hệ thống LINUX nào.


4

Trên Suse Linux 13.2, pip gọi python3, nhưng pip2 có sẵn để sử dụng phiên bản python cũ hơn.


tương tự trên voidlinux
Radagast

4

Trong Windows, đầu tiên cài đặt Python 3.7 và sau đó là Python 2.7. Sau đó, sử dụng dấu nhắc lệnh:

Pip cài đặt tên python2-module

Pip3 cài đặt python3-tên mô-đun

Đó là tất cả


3

Xin lưu ý rằng trên msys2 tôi đã thấy các lệnh này hữu ích:

$ pacman -S python3-pip
$ pip3 install --upgrade pip
$ pip3 install --user package_name

2

Nghĩ rằng đây là câu hỏi cũ, tôi nghĩ rằng tôi có giải pháp tốt hơn

  1. Để sử dụng pip cho môi trường python 2.x, hãy sử dụng lệnh này -

    py -2 -m pip cài đặt -r yêu cầu.txt

  2. Để sử dụng pip cho môi trường python 3.x, hãy sử dụng lệnh này -

    py -3 -m pip cài đặt -r tests.txt

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.