我一直在使用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)所以我不能升级
答案 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'))
对此的反馈意见可能我错过了什么?如果不能正常工作,我会尝试做更多的测试和更新