2

ユニコードパスから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 などに対して機能しますが、何らかの理由でモジュールのロードには機能しないことに注意してください。エンコーディングに別の形式はありますか? この行動は不可能ですか?構文が異なる 2.7.3 の代わりに python 3.x を使用する必要がありますか?

編集:誰かがこれを行うためのトリックを知っている場合、現金賞は資格があります(Windows上)

4

1 に答える 1

0

ええ、それはWindowsをサポートしていないPythonのバグか、正気ではなくutf-8エンコーディングを使用しているWindowsのバグです。python27.dll では、介入して偽のモジュール パスを確認できます...

ここに画像の説明を入力

于 2013-08-10T08:55:13.040 に答える