我正试图安装这个库用于LZJB的压缩。PyLZJB LINK
库是C库的绑定,文件位于此处PyLZJB.so
不幸的是,当导入时复制到site packages目录时,我得到了“错误的ELF class”错误。在
>>> import PyLZJB
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: ./PyLZJB.so: wrong ELF class: ELFCLASS32
帮助太好了。:)
PS:我正在运行Ubuntu10.464位
如果有人能给我推荐一种替代的压缩算法,我也会很高兴的。:)
该算法适用于HTML压缩,同时也需要客户端的Javascript解压/压缩支持。在
我真的希望有人能帮上忙。谢谢各位!在
您正在运行64位Python解释器并尝试加载32位扩展,这是不允许的。在
您需要为相同的体系结构编译Python解释器和扩展。虽然您可以得到一个32位的Python解释器,但最好是有一个64位的扩展名。在
您应该做的是获取LZJB的源代码,然后自己构建它以获得一个64位的共享对象。在
总是有好的旧deflate,一个更常见的LZ压缩家族成员。JavaScript implementation。How to handle raw deflate content with Python's zlib module。在
在相对较慢的客户端代码中,压缩提交数据会带来大量开销,而且提交将从中获得的原始字节并非易事。在
GET form submissions中的查询字符串本质上必须很短,否则将超出浏览器或服务器的URL长度限制。压缩这么小的东西是没有意义的。如果你有很多数据,它需要以POST形式。在
即使在POST表单中,默认的
enctype
是application/x-www-form-urlencoded
,这意味着大部分字节将被编码为%nn
序列。这将使表单提交膨胀,可能超出原始未压缩的大小。要提交原始字节,必须使用enctype="multipart/form-data"
格式。在即使这样,你也会遇到编码问题。JS字符串是Unicode而不是字节,它将使用包含表单的页面的编码进行编码。这通常应该是UTF-8,但是实际上不能通过编码生成任意的字节序列来上传,因为许多字节序列在UTF-8中是无效的。您可以通过将每个字节作为一个编码单元编码为UTF-8来获得unicode中的字节,但这会使压缩字节膨胀50%(因为超过
0x80
的一半代码单元将编码为两个UTF-8字节)。在理论上,如果您不介意失去适当的国际化支持,您可以将页面作为ISO-8859-1提供,并使用
escape/encodeURIComponent
习惯用法在UTF-8和ISO-8859-1之间进行转换以获得输出。但这行不通,因为浏览器撒谎,实际上使用Windows代码页1252对标记为ISO-8859-1的内容进行编码/解码。你可以在每一个字节的编码中使用更多的字符。在您可以通过使用base64之类的方法来避免编码问题,但是,同样地,您有更多的手动编码性能开销和33%的膨胀。在
总之,所有的方法都是不好的;我不认为你能从中得到多少有用的东西。在
您可以运行32位Python或编译自己的PyLZJB,而不是使用预构建的二进制文件。或者从某个地方得到一个64位的二进制PyLZJB。在
相关问题 更多 >
编程相关推荐