2017-03-22 1 views
0

Ich habe gerade base65536 in Python installiert ist, gefunden HereBasis65536 in Python?

Als Test, um zu sehen, ob es funktioniert, ich dieses Skript hier gemacht haben:

import base65536 
a = base65536.encode("Hello World") 
print a 

i python2.7 bin mit. Wenn ich es laufe, erhalte ich diesen Fehler:

Traceback (most recent call last): 
    File "test.py", line 3, in <module> 
    a = base65536.encode("Hello World") 
    File "C:\Python27\lib\site-packages\base65536\core.py", line 118, in encode 
    stream.write(unichr(code_point)) 
ValueError: unichr() arg not in range(0x10000) (narrow Python build) 

Irgendeine Idee, was man hier tut?

+0

Sie haben die Readme des Projekts nicht gut befolgt. die "Hallo Welt" ist eigentlich "Bytes" keine normale Zeichenfolge 'a = Base65536.encode (b" Hallo Welt ")'. Sie sollten auch Python3 verwenden, da Bytes in Python 2 nur ein Alias ​​für Strings ist – danidee

+0

@danidee das Paket soll in beiden 2 und 3 arbeiten, und wie Sie sagten, das 'b' Präfix ist in Python 2.7 völlig optional. Ich vermute, dass das Paket nicht weit verbreitet ist und nie auf einem engen Zeichen-Build von Python getestet wurde. Ich bin sicher, dass es in Python 3 viel besser funktionieren würde. –

Antwort

0

Python2 hat zwei Builds: einen "engen" und einen "breiten", je nach Unicode-Unterstützung. Es sieht so aus, als ob diese Bibliothek den "schmalen" Build nicht unterstützt. Sie sollten einen "Wide" -Build installieren oder hoffen, dass die Bibliothek aktualisiert wird. Es sieht so aus, als hätte jemand ein Problem damit eingereicht: https://github.com/Parkayun/base65536/issues/4

Oder Sie können eine aktuelle Version von Python3 verwenden, die dieses Problem nicht hat.