python下的复杂网络编程包networkx、matplotlib、numpy安装及报错解决方案

前言:python和matplotlib 、 numpy、networkx

Python是一种解释性语言(尽管是高度优化过的),和C或者Fortran相比,这类语言对很多重数值算法来说运行缓慢。所以或许应该问一问究竟为什么有这么多科学家和公司,甚至在高度计算密集型领域内豪赌Python。

答案就是,在Python中很容易把数值计算任务交给下层的C或Fortran扩展包。这也正是NumPy和SciPy要做的事情(http://scipy.org/install.html)。在NumPy和SciPy这个组合中,NumPy提供了对高度优化的多维数组的支持,而这正是大多数新式算法的基本数据结构。SciPy则通过这些数组提供了一套快速的数值分析方法库。最后,用Python来绘制高品质图形,Matplotlib(http://matplotlib.org/)也许是使用最方便、功能最丰富的程序库了。

NetworkX是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工

一、NetworkX及Python开发环境的安装

(1)下载并安装Python2.7

下载地址

配置环境变量

(2)安装pip和easy_install

这两个工具是python必备工具。有了他们,各种软件的安装不必再亲自下载,一句命令即可自动下载安装。

python 安装easy_install和pip

(3)安装matplotlib、numpy、networkx

-> 打开cmd命令行

-> 进入pip目录:cd c:/Python27/Scripts

-> pip install matplotlib

-> pip install numpy

-> pip install networkx

(4)报错及解决方案

(a)UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-2

原因:编码错误

解决:Pyscripter为什么总报错?UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-2

(b)matplotlib报错Python version 2.7 required, which was not found in the registry

原因:版本没对上,32位python要安装32位的matplotlib。

(c)报错:“pip”不是内部或外部命令,也不是可运行的程序。

原因:没有找到pip.exe所在目录

解决:

c:\>pip install numpy
'pip' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

c:\>cd Python34

c:\Python34>pip install numpy
'pip' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

c:\Python34>cd Scripts

c:\Python34\Scripts>pip install numpy
You are using pip version 6.0.8, however version 7.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting numpy
  Downloading numpy-1.9.2.tar.gz (4.0MB)
    100% |################################| 4.0MB 57kB/s</span>

(d)Python Error: “ImportError: No module named six”
解决:切换到python目录,执行
pip uninstall six ; pip install six
(e)ImportError: matplotlib requires dateutil
pip uninstall dateutil ; pip install dateutil
(f):ImportError: matplotlib requires pyparsing
pip uninstall pyparsing ; pip install pyparsing
如果以上方法仍安装失败,则去官网下载压缩包,解压缩到Lib\site-packages目录下,从cmd切换到解压目录.
执行python  setup.py install同样可以安装成功。
(g)ImportError: No module named 'numpy
pip uninstall numpy ; pip install numpy
(h)error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat).

原因:C环境不匹配,安装MinGW

解决:

1、下载安装MinGW,下载地址为:http://sourceforge.net/projects/mingw/files/latest/download?source=files

2、在MinGW的安装目录下找到bin文件夹,找到mingw32-make.exe,复制一份更名为make.exe

3、把MinGW的路径添加到环境变量path中,比如我把MinGW安装到D:\MinGW\中,就把D:\MinGW\bin添加到path中;

4、在<python安装目录>\distutils增加文件distutils.cfg,在文件里输入

[build]
compiler=mingw32

保存;

(i) numpy继续报错:Symbol不存在。

<span style="font-family:SimSun;font-size:12px;">    ValueError: Symbol table not found

    ----------------------------------------
Command "C:\Python34\python.exe -c "import setuptools, tokenize;__file__='C:\\Users\\zhao\\AppData\\Local\\Temp\\pip-build-vbvzk0v9\\numpy\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\zhao\AppData\Local\Temp\pip-dy3ind8_-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\zhao\AppData\Local\Temp\pip-build-vbvzk0v9\numpy</span>

解决:考虑重新安装numpy。numpy本身没有64位版本,按照 此帖 指示一步一步先安装wheel
<span style="font-family:SimSun;font-size:12px;">c:\Python34\Scripts>pip install wheel
Collecting wheel
  Downloading wheel-0.24.0-py2.py3-none-any.whl (63kB)
    12% |████▏                           | 8.2kB 122kB/    19% |██████▏                         | 12kB 180kB    25% |████████▎                       | 16kB 237    32% |██████ ████▍                     | 20kB 2    38% |████████████▍                   | 24kB    45% |██████████████▌                 | 28    51% |████████████████▋               |     58% |██████████████████▋                 64% |███████ █████████████▊             71% |██████████████████████▉         77% |████████████████████████▉     84% |█████████████████████████    90% |█████████████████████████    97% |█████████ ████████████████    100% |█████████████████████████████ ███| 65kB 280kB/s
Installing collected packages: wheel
Successfully installed wheel-0.24.0</span>

然后在加州大学欧文分校下载了64bit、py3.4的numpy。pip install+将文件拖进cmd,安装成功!
<span style="font-family:SimSun;font-size:12px;">c:\Python34\Scripts>pip install C:\Users\zhao\Downloads\numpy-1.10.0b1+mkl-cp34-none-win_amd64.whl
Processing c:\users\zhao\downloads\numpy-1.10.0b1+mkl-cp34-none-win_amd64.whl
Installing collected packages: numpy
Successfully installed numpy-1.10.0b1</span>

解决方案二: 点击打开链接

(j)matplotlib画图报错:AttributeError: 'module' object has no attribute 'plot'、

解决:其实是.pyc文件存在问题。

问题定位:查看import库的源文件,发现源文件存在且没有错误,同时存在源文件的.pyc文件

问题解决方法:删除该库的.pyc文件,重新运行代码;或者找一个可以运行代码的环境,拷贝替换当前机器的.pyc文件即可

pip uninstall matplotlib ; pip install matplotlib
将import matplotlib as plt 改成 import matplotlib.pyplot as plt

(k)Networkx read_gml error “networkx.exception.NetworkXError: cannot tokenize u'graph' at (3, 1)”
---------------------------------------------------------------------------------
在shell中输入:

print nx

如果能输出:

说明Networkx已经安装好了,可以正常调用。

你可能感兴趣的:(python,NetworkX,matplotlib,numpy)