Chinaunix首页 | 论坛 | 博客
  • 博客访问: 531800
  • 博文数量: 92
  • 博客积分: 980
  • 博客等级: 准尉
  • 技术积分: 1426
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-25 20:34
文章分类

全部博文(92)

文章存档

2015年(3)

2014年(15)

2013年(27)

2012年(38)

2011年(9)

分类:

2012-09-30 00:01:45

最近在用eclipse结合PyDev进行Python的GUI的开发,发现一个问题,就是本来在eclipse中执行的好好的代码,拿到IDLE中就无法正确执行,例如:
 
上图是在eclipse中执行的结果;
但是,在IDLE中执行:
 
提示找不到模块路径;
 
这样,导致的一个直接问题是,在使用py2exe进行打包时,也会报找不到模块的错误(PS:为了打包成功,我总是要求代码既能在eclipse中运行,也能在IDLE中独立运行);
于是,联查带搜带摸索的,找到了其中的原因:
注意观察,事实上,在eclipse中执行的时候,eclipse自动在sys.pyth的路径中加入了上层的src目录,
这是因为,我在建立工程的时候选择了“Create src and add it to pythonpath”,如下图:
 
因此,在eclipse中,各个模块从上到下以及彼此之间的调用都没有问题;
但是,在IDLE中执行的时候,如下:
 
PYTHONPATH 中,只有设定的路径和当前运行程序所处的文件目录路径(C:\\Users\\Run_LeoCat\\Desktop\\Test\\src\\leo);所以,导致无法关联到相关的模块,也不能进行模块间的调用
 
 
找到了原因,那就可以想办法解决了。思路是,模仿eclipse,在使用IDLE进行执行的时候,将src的目录加到PYTHONPATH 中;做法有很多,网上说的可以直接对PYTHONPATH 进行append追加,这种办法,网上的解释有很多,我就不解释了。不过,我目前倾向于采纳这种做法:
    python2.6之后,支持将路径写到.pth文件中,并放入到PYTHONPATH 中,这样,python会自动将里面的路径加入到PYTHONPATH 中;
    于是,在site-package 中加入了文件,如下:
 
 
并在此文件里指定了src加入到PYTHONPATH ;
再次在IDLE中进行执行:
 
上下级调用成功;
 
同级调用成功;
此时,将此文件进行修改,修改了后缀,结果发现,不能成功执行了:
 
 
因此,判定确实是这个文件的设置生效了;
 
所以,在以后的开发过程中,如果使用PyDev开发,要让工程能够在IDLE中独立运行,需要将工程的src目录加入到
PYTHONPATH 中。
 
至此,PyDev和IDLE的呼应,处理完毕。经过IDLE执行正常的程序,使用py2exe才能正确打包。




阅读(2130) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~