在python中安裝非自帶python模塊,有三種方式:
1.easy_install
2.pip
3.下載壓縮包(.zip, .tar, .tar.gz)后解壓, 進入解壓縮的目錄后執行python setup.py install命令
本文主要針對pip安裝時可能會碰到的一種情況,及解決辦法:
假如我要安裝pylint模塊,該模塊非python自帶模塊,用import肯定不能導入,需要額外安裝
>>> import pylint?
Traceback (most recent call last):?
? File "
ImportError: No module named pylint?
【現象】
執行pip install
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來安裝,比如說: cpan>install Test::Class, 非常方便,不會碰到這種情況,這種情況主要是因為pip版本問題: pip最新的版本(1.5以上的版本), 出于安全的考
慮,pip不允許安裝非PyPI的URL,因為該安裝文件實際上來自pylint.org,因而導致上面的錯誤!
NOTE:
1. 可以在官方changelog里面查看更改的信息
2. 可以用pip --version來查看pip的版本信息
C:\>pip --version?
pip 1.5.6 from C:\Python27\lib\site-packages (python 2.7)?
【辦法】
針對上面的情況,既然這個問題是因為pip版本的原因,可以改用pip低一點的版本
方法一: 用pip 1.4版本,再執行pip install pylint命令來安裝
方法二: 執行命令時,加上--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?? # 允許所有外部地址的標簽,只有打上該標簽pip方可下載外部地址模塊
2. --allow-unverified???? #? pip沒有辦法校驗外部模塊的有效性,所以必須同時打上該標簽
3. astroid==1.3.6????????? #? 依賴包必須要添加上,并賦予其版本號,pip方能從列表下載????
方法三: 在當前目錄下,新增requirements.txt,內容如下:
# requirements.txt?
--allow-all-external pylint?
--allow-unverified pylint?
pylint?
--allow-all-external astroid==1.3.6?
再執行: pip install -r requirements.txt
【結論】
1. pip這個設計不夠友好,使用也很不方便,遠不如Perl中的PPM,期待Python中也有這么個工具。
2. 如果碰到這種錯,導致不能安裝模塊的話: 直接下載壓縮包安裝好了。 >>>下載包地址<<<
3. 執行pip -h命令查看更新pip相關的幫助信息
Usage:????
? pip
?
Commands:?
? install???????????????????? Install packages.?
? uninstall?????????????????? Uninstall packages.?
? freeze????????????????????? Output installed packages in requirements format.?
? list??????????????????????? List installed packages.?
? show??????????????????????? Show information about installed packages.?
? search????????????????????? Search PyPI for packages.?
? wheel?????????????????????? Build wheels from your requirements.?
? zip???????????????????????? DEPRECATED. Zip individual packages.?
? unzip?????????????????????? DEPRECATED. Unzip individual packages.?
? bundle????????????????????? DEPRECATED. Create pybundles.?
? help??????????????????????? Show help for commands.?
?
General Options:?
? -h, --help????????????????? Show help.?
? -v, --verbose?????????????? Give more output. Option is additive, and can be used up to 3 times.?
? -V, --version?????????????? Show version and exit.?
? -q, --quiet???????????????? Give less output.?
? --log-file
? --log
? --proxy
? --timeout
? --exists-action
? --cert
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
