BCNG Li Junjie
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稳定版:http://files.ettus.com/binaries/gnuradio/latest_stable ettus测试版:http://files.ettus.com/binaries/gnuradio/latest_unstable 下载win32版本,我用3.6.4.1。
Python Windows安装程序: http://www.python.org/getit/ 目前GNU Radio只支持Python 2.7,所以下载2.7的Windows版本,目前最新版是2.7.5,注意下载Windows_Installer这个是32bit的,不要下载X86_64的版本。确定了Python的版本,其他第三方部件都需要匹配这个版本。
Numerical Python安装程序:
http://sourceforge.net/projects/numpy/files/NumPy/
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
Visual C++ 2010 Runtime:
这是个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。
安装PyOpenGL,这个也不用下载,用easy_install安装,在Windows命令行中输入C:\\Python27\\scripts\\easy_install.exe pyopengl,回车即可。
最后安装GNU Radio,安装时候会问要不要添加PATH
用默认应当就可以,但是我的电脑每次安装都会说路径过长无法添加的错误,所以我就选了第一项,不让它自动添加,安装完以后再手动添加进去,方法是,在“计算机”或“我的电脑”上右键 -> 选“属性” -> “高级”或者“高级系统属性”-> “环境变量” -> “系统变量” -> 选中“Path”行 -> 按“编辑” -> 在“变量值”原有值的最前面输入gnuradio的bin目录的完整路径,例如我的是“C:\\Program Files (x86)\\gnuradio\\bin;”。注意最后的那个分号“;”必须有,而且是半角的分号。
安装完后,还需要添加gnuradio的Python包的路径,方法和上面一样,路径是“C:\\Program Files (x86)\\gnuradio\\lib\\site-packages;”,同样注意最后的分号。
全部装完,就可以使用桌面的快捷方式,或者双击bin目录下的gnuradio-companion.py启动gnuradio啦。
如果启动不了,换到Windows命令行中,输入gnuradio-companion.py,看看有什么错误提示,我第一次安装完执行的错误是:
File \"C:\\Python27\\lib\\site-packages\\gtk-2.0\\gtk\\__init__.py\ from gtk import _gtk
ImportError: DLL load failed: The specified procedure could not be found.
折腾了很久才发现,这是由于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,而且版本还各不相同,把这两个库改了个名字,就没问题啦。
我出现了下边的情况:
这还没完。。。。注意下边才是关键,找了好久!
INSTALL UHD
1. Download UHD from here (http://files.ettus.com/binaries/uhd_stable/latest_stable) 2. Run uhd_003.005.000-62-stable_Win32.exe and follow all default options accept the one
about the system path. I opted to add UHD to the system path for all users just in case (although this may not be necessary). By default, it will install this under C:\\Program Files (x86)\\UHD.
SET SYSTEM ENVIRONMENT VARIABLES
Setting system environment variables can be done in a few ways natively but each version of windows is different (a quick google search on setting system environment variables in windows can provide this for any version). There is a great utility that makes it easier you can gethere called rapid environment editor.
1. Set the PYTHONPATH system environment variable to \"C:\\Program Files
(x86)\\gnuradio\\lib\\site-packages\". Note that this could also be \"C:\\Program
Files\\gnuradio\\lib\\site-packages\" if you are installing on a 32-bit operating system (remember, these instructions are for a windows 7 64-bit workstation). After the install I performed, this environment variable already existed and was pointing to \"C:\\Program Files (x86)\\OpenLibraries\\python\(x86)\\gnuradio\\lib\\site-packages.
2. Set the GRC_BLOCKS_PATH system environment variable to \"C:\\Program Files
(x86)\\gnuradio\\share\\gnuradio\\grc\\blocks\". Note that this could also be \"C:\\Program Files\\gnuradio\\share\\gnuradio\\grc\\blocks\" if you are installing on a 32-bit operating system
(remember, these instructions are for a windows 7 64-bit workstation). After the install I performed, this environment variable was already setup properly.
因篇幅问题不能全部显示,请点此查看更多更全内容