在python中安裝非自帶python模塊,有三種方式:
1.easy_install
2.pip
3.下載壓縮包(.zip, .tar, .tar.gz)后解壓, 進(jìn)入解壓縮的目錄后執(zhí)行python setup.py install命令
本文主要針對(duì)pip安裝時(shí)可能會(huì)碰到的一種情況,及解決辦法:
假如我要安裝pylint模塊,該模塊非python自帶模塊,用import肯定不能導(dǎo)入,需要額外安裝
代碼如下:
>>> import pylint
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named pylint
【現(xiàn)象】
執(zhí)行pip install <modulename>命令,報(bào)錯(cuò)如下:
代碼如下:
D:/>pip install pylint --allow-external pylint
Downloading/unpacking pylint
Requirement already satisfied (use --upgrade to upgrade): six in c:/python27/lib/site-packages/six-1
.8.0-py2.7.egg (from pylint)
Downloading/unpacking astroid>=1.3.6 (from pylint)
Real name of requirement astroid is astroid
Could not find any downloads that satisfy the requirement astroid>=1.3.6 (from pylint)
Some insecure and unverifiable files were ignored (use --allow-unverified astroid to allow).
Cleaning up...
No distributions at all found for astroid>=1.3.6 (from pylint)
Storing debug log for failure in C:/Users/aaa/pip/pip.log
【分析】
在Perl中安裝新模塊,一般可以用PPM圖形化工具,也可以用CPAN來(lái)安裝,比如說(shuō): cpan>install Test::Class, 非常方便,不會(huì)碰到這種情況,這種情況主要是因?yàn)閜ip版本問(wèn)題: pip最新的版本(1.5以上的版本), 出于安全的考
慮,pip不允許安裝非PyPI的URL,因?yàn)樵摪惭b文件實(shí)際上來(lái)自pylint.org,因而導(dǎo)致上面的錯(cuò)誤!
NOTE:
1. 可以在官方changelog里面查看更改的信息
2. 可以用pip --version來(lái)查看pip的版本信息
代碼如下:
C:/>pip --version
pip 1.5.6 from C:/Python27/lib/site-packages (python 2.7)
【辦法】
針對(duì)上面的情況,既然這個(gè)問(wèn)題是因?yàn)閜ip版本的原因,可以改用pip低一點(diǎn)的版本
方法一: 用pip 1.4版本,再執(zhí)行pip install pylint命令來(lái)安裝
方法二: 執(zhí)行命令時(shí),加上--allow-all-external, --allow-unverified及依賴包版本(astroid==1.3.6)
代碼如下:
pip install pylint --allow-all-external pylint astroid==1.3.6 --allow-unverified pylint
NOTE:
1. --allow-all-external # 允許所有外部地址的標(biāo)簽,只有打上該標(biāo)簽pip方可下載外部地址模塊
2. --allow-unverified # pip沒(méi)有辦法校驗(yàn)外部模塊的有效性,所以必須同時(shí)打上該標(biāo)簽
3. astroid==1.3.6 # 依賴包必須要添加上,并賦予其版本號(hào),pip方能從列表下載
新聞熱點(diǎn)
疑難解答
圖片精選