wxPython是python 的GUI框架之一,目前来看还是比较好用,windows上可以直接访问
https://www.wxpython.org/下载对应的wxpython版本,安装完成后在python中直接使用import wx语句调用模块即可,但是在mac上安装就比较麻烦,往往会提示安装失败(读者可自己尝试一下:)),具体原因尚不清楚,而如果使用homebrew来安装wxpython,系统自带的python也不能立即调用,会提示找不到wx模块,比较简单的方法是使用brew再下载一次python,这样就自动将wxpython放在brew下载的python搜索路径下面了。虽然这样能解决问题,但是为了更好的理解python,还是得就这个问题稍微深入地了解一下python的模块之间是如何工作。
提到python模块,首先就要说下import。传统的C程序员如果对python没有了解的话,会认为import和#include是一样的,但其实不应该这么比较,因为python中导入并非只是把一个文件文本插入另一个文件中,导入其实是运行时计算,程序第一次导入指定文件时,会执行三个步骤:
1、找到模块文件
2、编译成位码
3、执行模块代码,形成需要的对象
这三个步骤只会在第一次导入时才会进行,在这之后,导入相同模块时会跳出这三个步骤,而只会从内存中加载相应的模块对象,下面主要对步骤一进行分析。
import一个模块后,python会从以下几个路径中进行搜索:
1、程序的主目录
2、PYTHONPATH目录
3、标准链接库目录
4、任何.pth文件的内容
而这四个地址组合起来就变成了sys.path,当发现import模块提示找不到时,就要通过sys.path查看目前python搜索路径下是否包含该模块。
好了,那现在python无法找到wx库的解决方法就呼之欲出了,一个是添加wx路径到PYTHONPATH目录中,或者新建*.pth文件,将路径放入其中。
第一种方法,在linux中可以命令:export PYTHONPATH=$PYTHONPATH:要添加的路径 来实现
第二种方法,可以在python搜索路径下的任意文件夹中,添加一个*.pth文件,将wx路径添加其中
这两种方法任选其一后,接下来的问题就是路径该怎么添加,或者说添加怎样的路径。这里还是以wxpython为例子:
1、首先通过brew install wxpython下载相关组件
2、下载完成后,通过brew info wxpython查看下载位置,笔者的下载位置如下:
3、进入该目录,找到lib目录下的wx文件,笔者电脑中位置如下:
4、将该路径保存在python的搜索路径下即可。
通过以上步骤,即可将wxpython放入python的搜索路径中了。通过以上步骤我们大概可知道两点:
1、大部分需要包含模块的文件位置,都在site-packages文件夹下面(读者可自行使用sys.path命令来看当前python搜索路径,大部分路径都包涵该文件夹)
2、路径其实是需要包涵的模块的路径