電腦里有Python2.7和Python3.4,在Python3.4里安裝了virtualenv。
通過(guò)virtualenv,創(chuàng)建了兩個(gè)環(huán)境,一個(gè)是通過(guò)指定版本的使用Python2.7的版本Py27,另一個(gè)使用Python3.4的版本Py34。
今天我在Python2.7里安裝了PIL,然后在Py27里,import不出來(lái)。
我看Py27目錄下的Lib子目錄,發(fā)現(xiàn)沒(méi)有PIL,那怎么能告訴virtualenv我安裝了這個(gè)東西,然后能import出來(lái)?
歡迎選擇我的課程,讓我們一起見(jiàn)證您的進(jìn)步~~
創(chuàng)建 env 的時(shí)候,要加上 --no-site-packages
,保證這個(gè) env 的獨(dú)立。
activate py27 env 以后,在這個(gè) env 下安裝 PIL。使用 PIL 的時(shí)候,也要保證已激活這個(gè)環(huán)境。
virtualenv --no-site-packages py27
# 創(chuàng)建一個(gè) envsource ./py27/bin/activate
# 激活環(huán)境pip install pil
如果你要在 IDE 里使用 pil,那么 IDE 里 project 的 python 環(huán)境也要設(shè)置成這個(gè) py27。
一般不推薦在環(huán)境之間共享用戶包咯,畢竟 venv 就是為了隔離嘛。不過(guò),如果你確實(shí)需要在 venv 環(huán)境中使用全局的用戶包,需要在創(chuàng)建該環(huán)境的時(shí)候加上 --system-site-packages
選項(xiàng),副作用是該系統(tǒng)環(huán)境所有的用戶包在 venv 環(huán)境中都能訪問(wèn)了,不能單獨(dú)選擇。
當(dāng)然,還有更 hacky 的辦法可以做到你期望的結(jié)果,比如手動(dòng)軟連接過(guò)去:
ln -s /usr/lib/python2.7/site-packages/PIL path_to_your_venv/lib/python2.7/site-packages/PIL
但是這樣做無(wú)法保證包得完整性,畢竟不是 setup.py
裝的,所以風(fēng)險(xiǎn)自擔(dān)。
為什么不在 Py27 里再安裝一次 PIL?
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)