安裝pillow或者PIL這個(gè)問題我承認(rèn)我一直一知半解。
廖大的教程是這么說的:

然而我的結(jié)果是這樣:

看來要好好搞懂python環(huán)境了(mac系統(tǒng))
python 是個(gè)編程語言,python 也是個(gè)程序
pip 是用 python 語言編寫的的一個(gè)程序,主要用來安裝第三方的模塊
通過PATH 這個(gè)環(huán)境變量來控制使用哪個(gè)位置的python和pip
sys.path 是 python 中 sys 模塊中的一個(gè)變量,控制 import 時(shí)去哪里查找模塊
PYTHONPATH 是個(gè)環(huán)境變量,也可以控制 import 時(shí)去哪里查找模塊
- /etc/profile (建議不修改這個(gè)文件 )
全局(公有)配置,不管是哪個(gè)用戶,登錄時(shí)都會(huì)讀取該文件。 - /etc/bashrc (一般在這個(gè)文件中添加系統(tǒng)級(jí)環(huán)境變量)
全局(公有)配置,bash shell執(zhí)行時(shí),不管是何種方式,都會(huì)讀取此文件。 - ~/.bash_profile (一般在這個(gè)文件中添加用戶級(jí)環(huán)境變量)
每個(gè)用戶都可使用該文件輸入專用于自己使用的shell信息,當(dāng)用戶登錄時(shí),該文件僅僅執(zhí)行一次!
當(dāng)在終端輸入$python時(shí),Python使用哪里的哪個(gè)版本?
- 路徑:python 是個(gè)編程語言,python 也是個(gè)程序,通過PATH 這個(gè)環(huán)境變量來控制使用哪個(gè)位置的python程序
-
路徑查看:
$ echo $PATH
我目前PATH是/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 多個(gè)路徑是從前往后找的,只要找到對(duì)應(yīng)的程序就不會(huì)再往后找了。比如在第一個(gè)路徑/usr/local/bin下我有python python2 python2.7 python3 等文件,它們都是快捷方式,指向了實(shí)際的python程序。所以$python就找到了python所以就用它了,不用再往PATH中的下一個(gè)目錄找 -
路徑修改:
整個(gè)修改$ export PATH=/xxx:/xxx
添加單個(gè)$export PATH=/xxx:$PATH
但這樣重啟中斷后就恢復(fù)原樣了。所以應(yīng)該打開~/.bash_profile 再底下添加
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH -
版本和位置查看:
$which python2就可以看到輸入python2調(diào)用的是哪一個(gè)python文件,$python2 -V就可以看到輸入python2調(diào)用的python文件是哪一個(gè)版本 。
比如我$which python 得到/usr/local/bin/python。然后$ python -V得到Python 3.6.1 表示我輸入python后使用的是這個(gè)位置的python,它是3.6.1版本,因?yàn)槲乙话阌?.6版本,所以把python3.6真身導(dǎo)出快捷方式放到/usr/local/bin下,命名為 python,這樣輸入python默認(rèn)就是3.6版本了
pip
- 什么是pip: 是用 python 語言編寫的的一個(gè)程序,主要用來安裝第三方的模塊。說明手冊(cè)可以看這里
- 當(dāng)在終端使用$pip時(shí),使用哪里的哪個(gè)pip?
同上,通過PATH 這個(gè)環(huán)境變量來控制使用哪個(gè)位置的pip工具 - pip install 的pillow裝在哪里呢?
$ pip show --files pillow得到位置: /usr/local/lib/python2.7/site-packages - 如何修改pip install路徑?
我也不知道,不過可以在安裝某包時(shí)指定目錄
pip install --target=d:\somewhere\other\than\the\default package_name - pip安裝的file應(yīng)該如何被import的呢?
看下面
當(dāng)在python里import 模塊時(shí),導(dǎo)入的是哪里的模塊?
-
Python搜索模塊的路徑:
1). 當(dāng)前程序的主目錄
2). PYTHONPATH目錄
3). 標(biāo)準(zhǔn)連接庫目錄(一般在/usr/local/lib/python2.X/)
4). 任何的.pth文件的內(nèi)容(如果存在的話).新功能,允許用戶把有效果的目錄添加到模塊搜索路徑中去.pth后綴的文本文件中一行一行的地列出目錄。 -
路徑查看:
>>> import sys >>> sys.path
sys.path 是 python 中 sys 模塊中的一個(gè)變量,可以控制 import 時(shí)去哪里查找模塊。上述這四個(gè)組合起來就是sys.path。 - 修改PYTHONPATH:PYTHONPATH 只是 python 使用的環(huán)境變量,PATH 主要是 shell 使用,其他程序可能也會(huì)使用的環(huán)境變量。我沒有單獨(dú)創(chuàng)建過PYTHONPATH ,所以默認(rèn)就是PATH吧(有錯(cuò)請(qǐng)指出)。
如此一來PIL/pillow的安裝和使用就沒問題了
Pillow 是 PIL的對(duì)Python3支持的另外一個(gè)分支,當(dāng)然他對(duì)Python2也兼容。
遇到的一個(gè)蠢問題:
我今天折騰半天。。一直不理解為什么這倆不一樣:

python2 sys.path

python3 sys.path
可是為什么我的python2明明在usr/里頭,sys.path卻是/Library開頭,我們知道Python搜索模塊的路徑首先是當(dāng)前程序的主目錄,應(yīng)該是/usr開頭才對(duì)呀。
導(dǎo)致在python2里 用不了PIL庫 因?yàn)閜ip2安裝的庫不在/Library里。
后來才發(fā)現(xiàn):

python2快捷方式的實(shí)際指向
可能是哪天我!!!手賤!!!把/Library里的python2.7快捷方式扔進(jìn)了 usr/里。所以只是which看到python的位置還不夠,請(qǐng)點(diǎn)開文件夾查看那東西到底指向哪里。別被騙了
最后,謝謝G神和米爾克指導(dǎo)~
