Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sys.argv替代方案,Unicode错误_Python_Python 2.7_Pygtk - Fatal编程技术网

Python sys.argv替代方案,Unicode错误

Python sys.argv替代方案,Unicode错误,python,python-2.7,pygtk,Python,Python 2.7,Pygtk,我一直在使用os.path.abspathsys.argv[0]来获取exe运行的路径,无论从何处执行,但python 2.x sys.argv与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\фдсфгс\Des

我一直在使用os.path.abspathsys.argv[0]来获取exe运行的路径,无论从何处执行,但python 2.x sys.argv与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个问题

1获取文件位置,即使从不同的位置执行


2 unicode/utf-8支持pygtk不支持python 3 fixed sys.argv,因此我不能升级它,因为它将更改sys.argv函数以返回py2.x的unicode。但在我看来,它的工作原理至少与原始sys.argv不同,对于空闲控制台,它显示了python.exe的路径对于cmd控制台,它显示了正确的file.py,但我发现更好的解决方案不是编辑sys.argv,而空闲控制台显示了正确的file.py unicode类型os.path.abspathsys.argv[0].解码“mbcs”的反馈会很好也许我遗漏了什么?如果它不能正常工作,我将尝试进行更多的测试和更新。

错误报告包括一个解决方案。实际上,reprself.gladeloc打印了什么?在我看来,这确实是一个不同的问题。@MartijnPieters我没能做到这一点,有一个例外,但我的回答似乎使它起作用