2016-11-27 152 views
16

我有一臺OS X El Captain的Macbook。我認爲Python 2.7預裝在它上面。但是,我也安裝了Python 3.5。當我開始使用Python 3,我看了,如果我想安裝一個軟件包,我應該輸入:pip或pip3爲Python 3安裝軟件包?

pip3 install some_package 

不管怎樣,現在當我使用

pip install some_package 

我得到安裝Python 3some_package。我的意思是我可以導入它並毫無問題地使用它。此外,當我輸入只是pip3Terminal,我得到這個消息,使用方法:

Usage: 
    pip <command> [options] 

這是當我輸入只是pip相同的消息,我得到。

這是否意味着在previos版本中,情況有所不同,現在pippip3可以互換使用嗎?如果是這樣,並且爲了爭論,我怎樣才能爲Python 2而不是Python 3安裝軟件包?

回答

13

您的pippip3是指向同一個可執行文件路徑的軟鏈接。 您可以在下面用命令來檢查您的pippip3實際路徑是:

$ ls -l `which pip` 
$ ls -l `which pip3` 

你也可以使用下面的命令來了解更多的細節:

$ pip show pip 
$ pip3 show pip 

當我們安裝了不同版本的Python,我們可能會做這樣的軟鏈接到

  • 將默認pip設置爲某個版本。
  • 爲不同版本製作不同的鏈接。

是相同的情況下約pythonpython2python3

4

這是一個棘手的問題。最後,如果您調用pip,它將調用pip2pip3,具體取決於您如何設置系統。

1

如果你安裝了Python 2.7,我想你可以使用pip2pip2.7安裝軟件包專門爲Python 2中,像

pip2 install some_pacakge 

pip2.7 install some_package 

而且你可以使用pip3pip3.5到安裝專門針對Python 3的pacakges。

5

當您安裝python3pip3被安裝。如果你沒有安裝另一個python(比如python2.7),那麼會創建一個鏈接,指向pippip3

所以pip是爲pip3一個鏈接,如果沒有安裝蟒的任何其他版本(比python3等)。 pip一般指向第一次安裝。

4

如果你有蟒蛇2.x和再裝python3,畫中畫將指向PIP3。 你可以通過輸入pip --version來驗證,這與pip3 --version相同。

在您的系統上,您現在有pip,pip2和pip3

如果你想改變點子來指向點子2而不是點子3。

+0

你怎麼改變 – ahnbizcad

+1

@ahnbizcad最簡單的方法是定義一個別名是這樣的:別名點子=「PIP 3」 – apadana

0

我認爲pip,和pip3不是軟鏈接到相同的可執行文件路徑。注意此命令和結果在我的Linux終端:

[email protected] ~ $ ls -l `which pip` 
-rwxr-xr-x 1 root root 292 Nov 10 2016 /usr/bin/pip 
[email protected] ~ $ ls -l `which pip2` 
-rwxr-xr-x 1 root root 283 Nov 10 2016 /usr/bin/pip2 
[email protected] ~ $ ls -l `which pip3` 
-rwxr-xr-x 1 root root 293 Nov 10 2016 /usr/bin/pip3 
[email protected] ~ $ pip -V 
pip 9.0.1 from /home/mrz/.local/lib/python2.7/site-packages (python 2.7) 
[email protected] ~ $ pip2 -V 
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7) 
[email protected] ~ $ pip3 -V 
pip 9.0.1 from /home/mrz/.local/lib/python3.5/site-packages (python 3.5) 

正如你看到它們是存在於不同的路徑。

pip3只能在Python3環境下運行,因爲pip2可以在Python2中運行。點子在任何適合上下文的環境下運行。例如,如果您處於Python3 venv中,pip將在Python3環境中運行。

+0

我會說這是一個有點誤導地說,PIP鏈接到任何環境中是適當的上下文。在venv的情況下,pip可執行文件特定於venv而不是系統。除非你在同一個venv中安裝了多個python版本,否則我看不到這個問題。當不使用venv時,使用的pip版本有時是不直觀的,取決於系統的配置(通常是由其他版本首先安裝的python版本決定的)。但Pip沒有任何動態選擇版本的智能 –

0

在我的Windows實例 - 我不完全瞭解我的環境 - 使用pip3安裝kaggle-cli包 - 而pip沒有。我在conda環境下工作,環境看起來不一樣。

(fastai)C:\ Users \用戶纂\下載\ fast.ai \ deeplearning1 \ NBS> PIP --version

PIP 9.0.1從C:\ ProgramData \ Anaconda3 \ ENVS \ fastai \ lib中\站點包(蟒3.6)

(fastai)C:\ Users \用戶纂\下載\ fast.ai \ deeplearning1 \ NBS> PIP3 --version

PIP 9.0.1從C: \ users \ redact \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages (python 3.6)