转自:在Windows环境下安装GNU Radio_恐弱智_新浪博客

GNU Radio是用Python开发的,大部分开源的工程能够在Linux环境下运行良好,而Windows下却运行的很勉强,而且安装配置都很复杂。GNU Radio算是个例外了,不光提供了Windows的二进制安装,还有比较详细的说明。我是Python小白,所以折腾了好久才弄好,特意记录下来,免得以后再装还折腾。

 

 

安装和下载过程的基本注意事项:

  • 由于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的环境。

 

以下是实际安装过程:

  • 下载所需的部件:

  • 开始安装:

    • 安装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

    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,而且版本还各不相同,把这两个库改了个名字,就没问题啦。
  • 有些网友说这个动态库没法删除,可能是被某个运行中的程序使用中,这就比较难找了,另外pygtk还使用了一些其他库,上面那三个只是比较容易有冲突的库,如果实在找不到,网上有人推荐用微软的process monitor查找相关程序,这个就比较复杂了,英文好的可以直接看原文Page not found | LiamSchneider.Com
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:3 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐