注:该问题已于公历2010年7月29日上午11时正解决。
以下是原文:
//
我那个理发店会员卡管理程序……以前都是在Windows下调试的(因为没搞明白主客机共享问题),当初在Win下已经发现“当前目录”的问题了,不过我一直以为那是Python在Windows下的Bug。今天一时兴起把程序弄进了虚拟机里的OpenSUSE执行了一下。真是不跑不知道,一跑吓一跳。0.4.5发布的时候我还说要做到“任何操作都不报错退出”,可今天跑程序的时候还没操作呢就退出了,丢人啊……
原因就是那个万恶的“当前目录”。这个“当前目录”和Python程序的存放目录毫无关系,是由您的终端所打开的目录所决定的。在Windows下双击.py脚本运行,“当前目录”就是脚本存放的目录,而Linux下运行脚本是要在终端中调出来的,这个目录在Linux的默认状态下通常是您的家目录(即“/home/您的用户名”),然而程序中一切文件的读取写入都是在“当前目录”(家目录)下进行,于是就会出现“找不到某某文件”的提示并且直接退出程序。
当前的解决方法……就是您在运行脚本之前先打开程序存放的目录(“cd 程序目录”),然后直接“python3.1 main.py”即可。
其实这个问题很容易修正,就是在打开、关闭文件的代码之中加入“sys.path[0]+os.sep+”就可以了。不日我将放出修正后的版本,有经验的仁兄也可以对照源代码自行修正。
另外在Linux下没有cls这个命令(但是有clear),因此Linux清屏也不好使。不过这只是小问题,未来的更新将会把这问题一并解决掉。
又及:话说这么大Bug咋没人跟我提过?是根本没人跑过这程序还是大家都知道怎么解决了?(我估计是前者,唉……)