2

我试图了解是否根本不可能从 unicode 路径加载 python 模块,或者我是否缺少一些技巧。这个错误报告似乎暗示这是不可能的: http: //bugs.python.org/issue11619

目标:假设 C:\Users\pkarasev\д 包含 Foo.py ,那么我想这样做:

import sys
sys.path.append(str('c:/Users/pkarasev/\xd0\xb3').decode('utf-8')  )
from Foo import *

尽管 u'c:/Users/pkarasev/\0433' 已添加到我的 sys.path 并且 0433 是 ä 的正确编码,但此操作失败并显示“找不到模块...”。

请注意 str(...).decode(...) 方法适用于 os.open 之类的东西,但由于某些原因不适用于加载模块。编码有不同的格式吗?这个动作是不可能的吗?我是否需要使用具有不同语法的 python 3.x 而不是 2.7.3?

编辑:如果有人知道这样做的技巧(在 Windows 上),则有资格获得现金奖励

4

1 回答 1

0

是的,它要么是python中不支持windows的错误,要么是windows中的错误,因为它不健全并使用utf-8编码。在 python27.dll 中,您可以介入并查看伪造的模块路径...

在此处输入图像描述

于 2013-08-10T08:55:13.040 回答