[转载]在Windows环境下安装GNU Radio
转自:在Windows环境下安装GNU Radio_恐弱智_新浪博客
GNU Radio是用Python开发的,大部分开源的工程能够在Linux环境下运行良好,而Windows下却运行的很勉强,而且安装配置都很复杂。GNU Radio算是个例外了,不光提供了Windows的二进制安装,还有比较详细的说明。我是Python小白,所以折腾了好久才弄好,特意记录下来,免得以后再装还折腾。
- GNU Radio的说明:http://gnuradio.org/redmine/projects/gnuradio/wiki
- GNU Radio的Windows环境安装说明:http://gnuradio.org/redmine/projects/gnuradio/wiki/WindowsInstall
- GNU Radio目前比较完整的一个Windows环境二进制安装包的安装说明(ettus版本):http://code.ettus.com/redmine/ettus/projects/uhd/wiki/GNURadio_Windows
- 安装说明中提到,Windows环境下的Pyphon和GNU Radio可能会由于某些动态库的版本冲突导致异常,在安装过程中确实遇到了,后面会详细说。
安装和下载过程的基本注意事项:
- 由于ettus的Windows二进制版只有32bit版本,所以所有部件、工具都只能用windows 32bit的版本,即使运行环境的Windows是64bit版,也只能安装32bit版的相关软件。
- ettus的版本支持XP, Vista, Win7,我在Win7 64位版上测试过没问题,其他版本还没试过。
- 由于Python一直在更新,所以GNU Radio和其他第三方部件都需要与Python的版本一致,通常用于Python的部件或程序都会注明,例如numpy-1.6.2-win32-superpack-python2.7.exe,表示适用于python2.7的环境。
以下是实际安装过程:
-
下载所需的部件:
-
GNU Radio的Windows安装程序:
ettus稳定版:files.ettus.com:/binaries/gnuradio/latest_stable/
ettus测试版:files.ettus.com:/binaries/gnuradio/latest_unstable/
下载win32版本,我用3.6.4.1。
- Python Windows安装程序: Download Python | Python.org 目前GNU Radio只支持Python 2.7,所以下载2.7的Windows版本,目前最新版是2.7.5,注意下载Windows_Installer这个是32bit的,不要下载X86_64的版本。确定了Python的版本,其他第三方部件都需要匹配这个版本。
-
Numerical Python安装程序:
Numerical Python - Browse /NumPy at SourceForge.net
ettus的安装说明里说要1.6.2 Superpack版,按它给的链接下载就行。
-
PyQT安装程序:
ettus要求4.9.6-1版,按它给的链接下载。
-
setup_tools安装程序:
ettus要求0.6c11版,按它给的链接下载。
-
PyGTK安装程序:
ettus要求2.24.2 (all-in-one-installer),按它给的链接下载。后来解决安装问题的过程中发现,这个all in one确实方便,不然好几个相关第三方组件安装够麻烦。
-
wxPython安装程序:
ettus要求2.8.12.1,按它给的链接下载。
-
PyQWT安装程序:
ettus要求5.2.1版,按它给的链接下载。
-
lxml安装程序:
ettus要求3.0.2版,它给的链接失效了,我用的3.2.1的版本,也没问题。链接不能贴过来,在下载页面里找lxml-3.2.1.win32-py2.7.exe
-
这是个Windows运行时库,如果安装过Visial Studio 2010,这个库就已经有了,不然就需要下载。
-
-
开始安装:
-
安装Python,2.7.5默认安装到C:\Python27下,我觉得不用改这个路径,短路径用起来比Program Files那种长路径方便多了,毕竟Python很多时候还是需要从命令行执行的。
-
安装numPy、PyQT、PyGTK、wxPython、PyQWT、lxml、setup_tools和VC++ 2010 Runtime。
这些组件的安装顺序其实不重要,安装时它会自动找到Python的安装路径,如果不是很了解这些库都是干什么的,或者对Python不熟的话,全部按默认安装就行了,一路“下一步”,“确定”就搞掂,还是挺方便的。
-
安装Cheetah,这个不需要下载,如果安装过程可以上网的话,直接用easy_install就可以下载并安装,方法如下:
打开Windows命令行,输入C:\Python27\scripts\easy_install.exe cheetah,按回车,Python就会自动下载安装Cheetah,注意一下Python的安装路径,我的是C:\Python27,如果是别的路径,就用别的安装路径替换掉C:\Python27。安装提示有错误,改为用命令行下载,在windows命令行中输入如下命令下载Cheetah:py -m pip install Cheetah==2.4.4
-
安装PyOpenGL,这个也不用下载,用easy_install安装,在Windows命令行中输入C:\Python27\scripts\easy_install.exe pyopengl,回车即可。下载提示有错,还是在命令行中输入如下pip命令下载:py -m pip install pyopengl
-
最后安装GNU Radio,安装时候会问要不要添加PATH,选择需要添加,则会自动添加到环境变量PATH中
用默认应当就可以,但是我的电脑每次安装都会说路径过长无法添加的错误,所以我就选了第一项,不让它自动添加,安装完以后再手动添加进去,方法是,在“计算机”或“我的电脑”上右键 -> 选“属性” -> “高级”或者“高级系统属性”-> “环境变量” -> “系统变量” -> 选中“Path”行 -> 按“编辑” -> 在“变量值”原有值的最前面输入gnuradio的bin目录的完整路径,例如我的是“C:\Program Files (x86)\gnuradio\bin;”。注意最后的那个分号“;”必须有,而且是半角的分号。 -
安装完后,还需要添加gnuradio的Python包的路径,方法和上面一样,路径是“C:\Program Files (x86)\gnuradio\lib\site-packages;”,同样注意最后的分号。
-
按照上面的设置PATH环境变量的方法,运行gnuradio-companion.py还是一直提示import gnuradio失败,后来没法了,我直接把gnuradio安装目录gnuradio\lib\site-packages下的三个文件夹gnuradio、grc_gnuradio、pmt拷贝到C:\Python27\Lib\site-packages目录下,后面运行gnuradio-companion.py才正常
-
全部装完,就可以使用桌面的快捷方式,或者双击bin目录下的gnuradio-companion.py启动gnuradio啦。
如果启动不了,换到Windows命令行中,输入gnuradio-companion.py,看看有什么错误提示,我第一次安装完执行的错误是:
File "C:\Python27\lib\site-packages\gtk-2.0\gtk\__init__.py", line 40, in
折腾了很久才发现,这是由于pygtk的包中用到了一些动态库,这些动态库可能在Windows的其他程序中存在或者安装过的其他Python应用程序中存在,这些库的版本和pygtk要求的不匹配,并且能被Windows搜索到。
查了很多文档,提到几个可能的原因和解决方法:
- 有些PyGTK的安装问题解答中提到,要将GTK+和PyGTK的bin目录添加到环境变量中,官方建议说:不要这样做!否则很容易造成搜索路径混乱,引起更多的版本冲突。最佳做法是用all_in_one安装程序,如果之前手动安装过GTK+ runtime、PyGTK、PyCairo和PyGObject,那得先卸载,否则可能使版本更加混乱。
-
把环境变量的PATH列出来,以便检查,方法是,打开Windows命令行,输入PATH回车,它会列出当前的PATH搜索路径。在这些路径中检查一下,是不是有其他Python,是不有其他Python开发的应用程序,如果有的话,先从PATH中去除掉这些搜索路径再试试,删除之前,先备份好当前的值。如果可以的话,干脆卸载掉这些程序。
然后在Python的开发环境IDLE中,输入以下命令检查一下
>>>import gtk
>>>import pygtk
如果不在出现上面的错误,应当就可以运行GNURadio啦。
- 如果仍然有错误,再在PATH的路径里检查是不是存在以下几个动态库:libintl.dll、iconv.dll和zlib1.dll,通常会在Windows安装路径的System32或SysWOW64(64bit系统才有这个路径)。我的系统里发现UltraEdit的路径存在于PATH中,并且它的安装路径中有iconv.dll和zlib1.dll,把UltraEdit的路径从PATH中删除了还是不行,最后又在system32和SysWOW64中都发现zlib1.dll,而且版本还各不相同,把这两个库改了个名字,就没问题啦。
- 有些网友说这个动态库没法删除,可能是被某个运行中的程序使用中,这就比较难找了,另外pygtk还使用了一些其他库,上面那三个只是比较容易有冲突的库,如果实在找不到,网上有人推荐用微软的process monitor查找相关程序,这个就比较复杂了,英文好的可以直接看原文Page not found | LiamSchneider.Com。
更多推荐
所有评论(0)