【发布时间】:2013-08-09 13:14:20
【问题描述】:
我试图了解是否根本不可能从 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 上),则现金奖励是有资格的
【问题讨论】:
-
python -c "import locale; print(locale.getpreferredencoding())"对您的 Windows 编码有何看法? -
我得到 cp1252。据我所知,导入模块的唯一方法是首先执行 os.chdir( unicode('c:/Users/pkarasev/\xd0\xb3') ),然后导入 Foo。
-
好吧,我想答案是不可能的; chdir() 解决方法是可以容忍的。
标签: python windows unicode utf-8