python-2.7 - 在 Windows 上安装 PyGraphViz,Python 2.7 graphviz-2.36

标签 python-2.7 graphviz pygraphviz

我已经提到了 link , 但仍然面临问题:(

我在 Windows 7 上成功安装了 graphviz。现在我想安装 pygraphviz。我下载了 pygraphviz zip 文件并解压缩了它。我修改了 setup.py 并添加了以下文本。

# Windows
library_path='c:/Program Files (x86)/Graphviz2.36/lib/release/lib'
include_path='C:/Program Files (x86)/Graphviz2.36/include/graphviz'

我还修改了unixcompiler.py。我删除了行

compiler = os.path.basename(sysconfig.get_config_var("CC"))

和 而不是我写的

compiler = 'gcc'

当我尝试安装 pygraphviz 时出现以下错误:(

C:\Users\nnnnnnnnnn\Downloads\pygraphviz-1.2\pygraphviz-1.2>python setup.py install
library_path=c:/Program Files (x86)/Graphviz2.36/lib/release/lib
include_path=C:/Program Files (x86)/Graphviz2.36/include/graphviz
running install
running build
running build_py
running build_ext
building 'pygraphviz._graphviz' extension
C:\strawberry\c\bin\gcc.exe -DMS_WIN64 -mdll -O -Wall "-IC:/Program Files (x86)/
Graphviz2.36/include/graphviz" -IC:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\
include -IC:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\PC -c pygraphviz/graphv
iz_wrap.c -o build\temp.win-amd64-2.7\Release\pygraphviz\graphviz_wrap.o
pygraphviz/graphviz_wrap.c: In function 'agattr_label':
pygraphviz/graphviz_wrap.c:2855:5: warning: return makes integer from pointer wi
thout a cast [enabled by default]
writing build\temp.win-amd64-2.7\Release\pygraphviz\_graphviz.def
Traceback (most recent call last):
  File "setup.py", line 147, in <module>
    package_data     = package_data
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\core.py", l
ine 152, in setup
    dist.run_commands()
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\dist.py", l
ine 953, in run_commands
    self.run_command(cmd)
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\dist.py", l
ine 972, in run_command
    cmd_obj.run()
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\command\ins
tall.py", line 563, in run
    self.run_command('build')
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\cmd.py", li
ne 326, in run_command
    self.distribution.run_command(command)
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\dist.py", l
ine 972, in run_command
    cmd_obj.run()
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\command\bui
ld.py", line 127, in run
    self.run_command(cmd_name)
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\cmd.py", li
ne 326, in run_command
    self.distribution.run_command(command)
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\dist.py", l
ine 972, in run_command
    cmd_obj.run()
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\command\bui
ld_ext.py", line 337, in run
    self.build_extensions()
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\command\bui
ld_ext.py", line 446, in build_extensions
    self.build_extension(ext)
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\command\bui
ld_ext.py", line 528, in build_extension
    target_lang=language)
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\ccompiler.p
y", line 691, in link_shared_object
    extra_preargs, extra_postargs, build_temp, target_lang)
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\cygwinccomp
iler.py", line 260, in link
    target_lang)
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\unixccompil
er.py", line 160, in link
    libraries)
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\ccompiler.p
y", line 1071, in gen_lib_options
    opt = compiler.runtime_library_dir_option(dir)
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\distutils\unixccompil
er.py", line 227, in runtime_library_dir_option
    compiler = os.path.basename(sysconfig.get_config_var("CC"))
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\ntpath.py", line 198,
 in basename
    return split(p)[1]
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\ntpath.py", line 170,
 in split
    d, p = splitdrive(p)
  File "C:\Users\nnnnnnnnnn\AppData\Local\Continuum\Anaconda\lib\ntpath.py", line 125,
 in splitdrive
    if p[1:2] == ':':
TypeError: 'NoneType' object has no attribute '__getitem__'

最佳答案

对我有用的更简单的解决方案:

  • 运行pip install graphviz(PS:这一步可能不需要)
  • 从以下位置安装 Graphviz: here
  • 安装 pygraphviz 的非官方二进制文件 here
  • 尽情享受吧!

关于python-2.7 - 在 Windows 上安装 PyGraphViz,Python 2.7 graphviz-2.36,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22722730/

相关文章:

python - 如何在 Python 中使用 .writerow() 进行切片

python - PyCrypto 可以检查文件是否已经过 AES 加密?

pandas - 使用 Graphviz 绘制决策树时出现“特征名称长度与特征数量不匹配”错误

graph - 使节点更加分离(图形可视化)

python - 使用 Windows 10 使用 django-extensions 生成 PNG 格式的模型图(不使用 Conda 或 Anaconda)

python - 识别 Pandas 数据框中的重复项

python - 返回由字符串元素及其长度组成的对列表 - Python

gcc - 使用 gcc 链接到随 Homebrew 安装的动态库?

python - Graphviz:如何插入两个新的链接节点并最小化边交叉?

python - pygraphviz,导入错误 : undefined symbol: Agundirected