在Windows 10 64位,Python 3.6上安装pygraphviz
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Windows 10 64位,Python 3.6上安装pygraphviz相关的知识,希望对你有一定的参考价值。
好的,我们在这里......我正在尝试在Windows 10上安装pygraphviz。这个问题在网上有很多解决方案,但还没有一个对我有用。我遇到的确切问题是通过jupyter笔记本 - >
[1] import networkx as nx
import pylab as plt
from networkx.drawing.nx_agraph import graphviz_layout
[2]G = nx.DiGraph()
G.add_node(1,level=1)
G.add_node(2,level=2)
G.add_node(3,level=2)
G.add_node(4,level=3)
G.add_edge(1,2)
G.add_edge(1,3)
G.add_edge(2,4)
nx.draw(G, pos=graphviz_layout(G), node_size=1600, cmap=plt.cm.Blues,
node_color=range(len(G)),
prog='dot')
plt.show()
在[2]后我得到以下错误:
ModuleNotFoundError Traceback (most recent call last)
C:Users
ameAnaconda3libsite-packages
etworkxdrawing
x_agraph.py
in
pygraphviz_layout(G, prog, root, args)
254 try:
--> 255 import pygraphviz
256 except ImportError:
ModuleNotFoundError: No module named 'pygraphviz'
和
ImportError Traceback (most recent call last)
<ipython-input-2-86a15892f0f0> in <module>()
9 G.add_edge(2,4)
10
---> 11 nx.draw(G, pos=graphviz_layout(G), node_size=1600, cmap=plt.cm.Blues,
12 node_color=range(len(G)),
13 prog='dot')
C:Users
ameAnaconda3libsite-packages
etworkxdrawing
x_agraph.py in graphviz_layout(G, prog, root, args)
226
227 """
--> 228 return pygraphviz_layout(G,prog=prog,root=root,args=args)
229
230 def pygraphviz_layout(G,prog='neato',root=None, args=''):
C:Users
ameAnaconda3libsite-packages
etworkxdrawing
x_agraph.py in pygraphviz_layout(G, prog, root, args)
256 except ImportError:
257 raise ImportError('requires pygraphviz ',
--> 258 'http://pygraphviz.github.io/')
259 if root is not None:
260 args+="-Groot=%s"%root
ImportError: ('requires pygraphviz ', 'http://pygraphviz.github.io/')
这是我试图解决的问题
(1)常规pip安装:“pip install pygraphviz”这是我最后得到的错误。编辑我得到相同的错误,即使我以管理员身份运行cmd。
Command "C:Users
ameAnaconda3python.exe -u -c "import setuptools,
tokenize;__file__='C:\Users\name~1\AppData\Local\Temp\pip-build-
n81lykqs\pygraphviz\setup.py';f=getattr(tokenize, 'open', open)
(__file__);code=f.read().replace('
', '
');f.close();exec(compile(code,
__file__, 'exec'))" install --record C:Users
ame~1AppDataLocalTemppip-
b3jz1lk5-recordinstall-record.txt --single-version-externally-managed --
compile" failed with error code 1 in C:Users
ame~1AppDataLocalTemppip-
build-n81lykqspygraphviz
(2)下载并安装graphviz-2.38.msi,然后下载64位版本的滚轮。这是结果。
C:Users
ameAnaconda3>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.
C:Users
ameAnaconda3>pip install pygraphviz-1.3.1-cp27-none-
win_amd64.whl
pygraphviz-1.3.1-cp27-none-win_amd64.whl is not a supported wheel on this
platform.
我想尝试一下,但不确定如何正确做到:
编辑setup.py。我已经阅读了很多关于人们在改变路径时找到解决方案的内容,但我不确定如何做到这一点。这种方法看起来非常复杂。
感谢您的帮助/见解!
投票最多的答案似乎是安装graphviz,而不是pygraphviz。
如果您使用的是conda环境,可以尝试使用此频道:
conda install graphviz pygraphviz -c alubbock
我用networkx 2.1
试了一下,它工作得很好。
在Windows 10 64位和Python 3.6上解决了它。
脚步:
- 从graphiviz网站下载Graphviz for windows。
- 在Windows路径中添加Graphviz bin路径
C:Program Files (x86)Graphviz2.38in
。 - 关闭并重新打开终端,以便识别路径更改。
- 下载graphviz python 3.6 wheel。
- 安装graphviz滚轮。
pip install graphviz-0.8.3-py2.py3-none-any.whl
- 完成!
更新了回购:[GitHub]: CristiFati/Prebuilt-Binaries - (master) Prebuilt-Binaries/Windows/PyGraphviz。 为Python添加了.whls(win_amd64,win32):
- 3.7
- 3.6
- 3.5
对于Python 2.7,它们已经构建:[UCI.LFD]: Unofficial Windows Binaries for Python Extension Packages - PyGraphviz, an interface to the Graphviz graph layout and visualization package.。
笔记:
- 在某些(我猜,大多数)情况下,在运行PyGraphviz的系统上将需要Graphviz安装,因为PyGraphviz使用了Graphviz的一些工具(可执行文件)。它们可以下载或构建(它们不必匹配PyGraphviz架构(32位,64位),因为它们被调用)
- 此外,修复了一个错误(存在于以前的版本中)
- 查看[SO]: pygraphviz 1.5 default edge no arrow? (@CristiFati's answer)了解更多详情
任何想要了解有关构建过程的更多详细信息的人,请继续阅读!
1. Intro
差不多2年后,问题(嗯,问题不完全如此)仍然存在。
我想首先强调两个包之间的区别:
- [PyPI]: pygraphviz - Download files:有问题的那个
- [PyPI]: graphviz - Download files :(一个更简单的)名字相似的人
在Anaconda环境中,[SO]: Installing PyGraphviz on Windows 10 64-bit, Python 3.6 (@TomHanks's answer)完美运作。
pygraphwiz只能下载一个存档(在本例中为.zip)文件,这意味着它包含(C / C ++)源。
关于包(.whls)的几个词,其名称包含cp34-none-win_amd64之类的东西(详情请查看[SO]: What does version name 'cp27' or 'cp35' mean in Python? (@WayneWerner's answer)):
- 它们包含二进制文件(.so或.pyd(.dll)),它们与特定的Python库链接 它们只适用于那个Python版本(因此34不适用于Python 3.6) 甚至是某种方式“outmarts”pip并设法安装这样的软件包(实际上并不那么难),它会在导入时失败,或者更糟糕的是,它很可能会崩溃Python
现在,许多软件包都有预先构建的二进制文件,用于在各种操作系统上运行的大多数常见Python版本(例如[PyPI]: mysql-connector-python - Download files),但正如许多软件包那样,并且只包含源代码。不幸的是,PyGraphviz属于第二类。对于后者,pip install
将:
- 下载来源
- 在本地构建源 通常需要C(C ++)编译器: 尼克斯上的gcc VStudio赢了 他们可能有其他依赖关系
- 安装构建的文物(二进制文件和.py(c)文件)
作为旁注:pip -v ...
为当前命令启用详细模式,在遇到安装错误时非常方便。
回到我们的问题:Python 3.6需要VStudio 2015([Python.Wiki]: WindowsCompilers)。 这是一个非常广泛的主题,我在以下部分介绍了:
- [SO]: Simstring (python) installation in windows (@CristiFati's answer)
- [SO]: How to build a DLL version of libjpeg 9b? (@CristiFati's answer)
您应该在继续之前检查它们并保持它们打开,因为您在接下来的步骤中肯定需要它们。
我安装了VStudio 2015社区(在许多其他版本中),你也应该安装它,它是免费的([MS.VStudio]: Still want an older version?)。
PyGraphviz依赖于[Graphviz]: Graph Visualization Software。因此,在构建时,它将需要(部分)Graphviz(它也有自己的其他依赖项)已经构建。不幸的是,我找不到预建的二进制文件(有[Graphviz]: Windows Packages - graphviz-2.38.zip,但这没有帮助),所以它必须手动构建。
在继续之前:
[cfati@CFATI-5510-0:e:WorkDevStackOverflowq045093811]> "e:WorkDevVEnvspy_064_03.06.08_test0Scriptspython.exe" -c "import pygraphviz" Traceback (most recent call last): File "<string>", line 1, in <module> ModuleNotFoundError: No module named 'pygraphviz' [cfati@CFATI-5510-0:e:WorkDevStackOverflowq045093811]> dir /b other src
这是我的顶级目录,任何源都下载在src目录中,二进制文件将放在bin目录中。
2. Build Graphviz
在开始之前,我想提一下,我非常依赖Cygwin(你没必要),我的一些工具安装在那里,所以我将在Cygwin和cmd终端之间交替(这可能会令人困惑)。
[Graphviz]: Graphviz Build Instructions for Windows说:
在Windows上构建:
(Graphviz版本≥2.41)
首先,在存储库的根目录中,执行git submodule update --init。这将下载所有子模块,这些子模块主要是Windows构建的依赖项。接下来,将windows dependencies graphviz-build-utilities目录添加到PATH(并重新启动Visual Studio或之后执行msbuild的提示)。此文件夹包含Bison,Flex和SED(以及将来添加的)工具以及经过测试的版本。如果一切顺利,现在已设置依赖项,您可以构建Graphviz。
首先,我们需要下载所有内容:
[cfati@cfati-5510-0:/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz]> git clone https://gitlab.com/graphviz/graphviz.git . Cloning into '.'... remote: Enumerating objects: 71728, done. remote: Counting objects: 100% (71728/71728), done. remote: Compressing objects: 100% (19331/19331), done. remote: Total 71728 (delta 52200), reused 71681 (delta 52157) Receiving objects: 100% (71728/71728), 163.79 MiB | 480.00 KiB/s, done. Resolving deltas: 100% (52200/52200), done. Checking out files: 100% (3870/3870), done. [cfati@cfati-5510-0:/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz]> git submodule update --init Submodule 'dependencies/criterion' (https://github.com/Snaipe/Criterion.git) registered for path 'dependencies/criterion' Submodule 'windows/dependencies/graphviz-build-utilities' (https://github.com/ErwinJanssen/graphviz-build-utilities.git) registered for path 'windows/dependencies/graphviz-build-utilities' Submodule 'windows/dependencies/libraries' (https://github.com/ErwinJanssen/graphviz-windows-dependencies.git) registered for path 'windows/dependencies/libraries' Cloning into '/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz/dependencies/criterion'... Cloning into '/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz/windows/dependencies/graphviz-build-utilities'... Cloning into '/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz/windows/dependencies/libraries'... Submodule path 'dependencies/criterion': checked out '301d143ea42c024f22b673b69c72a4cb3c8d151f' Submodule path 'windows/dependencies/graphviz-build-utilities': checked out '050fff84ce195e0740878748760fd801eeb07b23' Submodule path 'windows/dependencies/libraries': checked out '141d3a21be904fa8dc2ae3ed01d36684db07a35d' [cfati@cfati-5510-0:/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz]> git show head co
以上是关于在Windows 10 64位,Python 3.6上安装pygraphviz的主要内容,如果未能解决你的问题,请参考以下文章
spacy 在 Windows 10 和 Python 3.5.3 上找不到模型“en_core_web_sm” :: Anaconda 自定义(64 位)
运行 32 位 Python 2.7 构建的 64 位 Windows 10 的 python-magic 安装挑战
使用 Python 2.7.3 在 64 位 Windows 7 上安装 Numpy [关闭]
使用 pip、Windows 7 64 位 Python 3.2 安装 Pandas 时出错
Windows 7(64 位)上的 Python 3.7 64 位:CSV - 字段大于字段限制(131072)[重复]