赞
踩
最近部署一个项目时,pip install 的requirements里面需要用到一个pygraphviz的包。这个包是用来图形化数据的。
requirements里面所有的包都顺利安装了,唯独这个包死活装不上。
如下所示是相关的错误信息。
error: Microsoft Visual C++ 10.0 is required. Get it with "Microsoft Windows SDK 7.1": www.microsoft.com/download/details.aspx?id=8279 ---------------------------------------- Failed building wheel for pygraphviz Running setup.py clean for pygraphviz Successfully built dominate Flask-Bootstrap flask-nav Flask-Uploads itsdangerous MarkupSafe visitor Failed to build pygraphviz Installing collected packages: appdirs, chardet, click, dominate, MarkupSafe, Jinja2, itsdangerous, Werkzeug, Flask, visitor, Flask-Bootstrap, Flask-Login, flask-nav, Flask-Uploads, WTForms, Flask-WTF, gunicorn, iso8601, numpy, pyparsing, six, packaging, pytz, requests, decorator, networkx, graphviz, pygraphviz Running setup.py install for pygraphviz ... error Complete output from command f:\fiat_dev\venv\scripts\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\JIANGM~1.FNS\\AppData\\Local\\Temp\\pip-install-b3cfvse8\\pygraphviz\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\JIANGM~1.FNS\AppData\Local\Temp\pip-record-h2160l90\install-record.txt --single-version-externally-managed --compile --install-headers f:\fiat_dev\venv\include\site\python3.4\pygraphviz: ... running build_ext building 'pygraphviz._graphviz' extension error: Microsoft Visual C++ 10.0 is required. Get it with "Microsoft Windows SDK 7.1": www.microsoft.com/download/details.aspx?id=8279 ---------------------------------------- Command "f:\fiat_dev\venv\scripts\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\JIANGM~1.FNS\\AppData\\Local\\Temp\\pip-install-b3cfvse8\\pygraphviz\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\JIANGM~1.FNS\AppData\Local\Temp\pip-record-h2160l90\install-record.txt --single-version-externally-managed --compile --install-headers f:\fiat_dev\venv\include\site\python3.4\pygraphviz" failed with error code 1 in C:\Users\JIANGM~1.FNS\AppData\Local\Temp\pip-install-b3cfvse8\pygraphviz\
按照正常思路,我开始把这个错误信息贴到网上去google.找到了一些所谓的解决办法,包括pygraphviz的github社区,以及其他博客文章。解决方法不外乎:
1.让你先安装graphviz,然后把环境变量设置一下。然后在安装的时候指定Pip 的inlude path之类的参数
2.让你安装一个32位的python,然后再去按照1的思路,重新编译安装pygraphviz
3.去Unofficial Windows Binaries for Python Extension Packages上下载一个编译好的python包来安装。
上面这些解决方法,我都尝试了。然而当我编译的过程中,又出现了很多层出不穷的c的编译错误。比如格式转换错误等等。可谓是焦头烂额,也没有解决实际的问题。我就纳闷了,网上这些帖子明明说这么做可以解决的啊!
当我接到一个有用的信息,说pygraphviz不支持python3.4以上的版本。于是我重新安装了一个python3.4,修改了系统的python环境变量。当我重新在cmd里面pip install pygraphviz-xxx-.whl的时候,系统提示我安装成功了。
但是这个项目我使用vitrualenv来管理它所需的包。刚刚我只是将这个包装在了系统python库里。于是我激活了当前venv,
再次运行pip install pygraphviz-xxx-.whl,一个熟悉的错误信息又出现了:
(venv) F:\pygraphviz-1.3.1>pip install pygraphviz-1.3.1-cp34-none-win_amd64.whl
pygraphviz-1.3.1-cp34-none-win_amd64.whl is not a supported wheel on this platform.
You are using pip version 10.0.1, however version 18.0 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
等等,刚刚安装不是好好的吗?问题出在哪了?
思考一番,发现是因为这个venv里面构筑的虚拟python环境是一周前我布置好的,那个时候系统的python版本是3.5,
所以这个虚拟环境里面的python版本也是3.5.所以安装的时候失败了。为了印证我的想法,我把venv删除,重新打开一个cmd,重新安装了一个虚拟环境。
当我再一次输入pip install pygraphviz-xxx-.whl,命令行提示我安装成功了。
所以原来这个错误信息就是在说版本不支持啊:
pygraphviz-1.3.1-cp34-none-win_amd64.whl is not a supported wheel on this platform.
这句话我至少看了10多遍,在我没有得到可能是Python版本不支持的信息之前。我一直以为这句话的意思是这个whl文件的版本不被我的系统版本支持。如今回过头,其实它应该是想说,python版本不支持把?
pygraphviz这个包可以使用的前提是,系统上已经安装了graphviz这个软件,访问官网下载安装包,安装即可。安装完毕后,将bin目录加入到系统path.
总结一下:
另外附上安装pygraphviz可能有用的连接:
最后,祝大家好运~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。