Python sys.argv替代,Unicode错误

时间:2014-08-16 18:16:27

标签: python python-2.7 pygtk

我一直在使用os.path.abspath(sys.argv[0])来获取我的exe总是运行的路径(并不重要的地方)但是python 2.x sys.argv {{3}存在问题使用unicode尝试使用glade(PYGTK)文件的脚本路径

self.gladeloc = os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])),"file.glade")
print self.gladeloc #prints fine C:\Users\фдсфгс\Desktop\ using idle console
self.builder.add_from_file(self.gladeloc) #prints C:\Users\пїЅпїЅпїЅ\Desktop\

我得到以下错误是否有替代方法在磁盘上获取exe位置(无论在哪里打开)我已经搜索了其他问题,似乎没有其他选择没有2个问题

即使从不同的地方执行,也会获取文件位置

2 unicode / utf-8支持pygtk不支持python 3(固定sys.argv)所以我不能升级

1 个答案:

答案 0 :(得分:0)

找到这个Answer它将更改sys.argv函数以返回py2.x的unicode。但在我看来,它的工作原理与原来的sys.argv至少对于Idle控制台它显示python.exe的路径为cmd控制台它显示正确的file.py但我发现我认为更好的解决方案并没有#39} ; t编辑sys.argv和空闲控制台显示正确的file.py unicode类型os.path.abspath(sys.argv[0].decode('mbcs'))对此的反馈意见可能我错过了什么?如果不能正常工作,我会尝试做更多的测试和更新