在Windows上安装apsw时出现奇怪错误

0 投票
2 回答
1090 浏览
提问于 2025-04-16 06:32

我在另一个系统上尝试安装apsw,结果遇到了很多错误,这些错误根据我们安装的方式不同而不同。首先,通过exe文件安装时,出现了“这个应用程序不是一个有效的win32程序”的错误。当我们从我的系统手动安装时,又出现了“导入错误:DLL加载失败:%1 不是一个有效的Win32应用程序。”此外,我们在构建模块时也遇到了与sqlite3.dll和sqlite3.lib相关的一些问题。

2 个回答

2

32位和64位的程序是两种不同的东西,只有在你知道自己在做什么的情况下才能混合使用。你有没有试着在你朋友的电脑上安装32位的python 2.6?

你为什么要用apsw而不是标准库里的sqlite3呢?

5

声明:我是APSW的作者

APSW的网站上有一整页内容,列出了为什么你应该选择APSW而不是pysqlite的原因。另外,标准库中包含的pysqlite版本比现在的pysqlite代码还要旧。

目前我只提供适用于32位Python的Windows APSW扩展。你可以在64位Windows上同时运行32位和64位的Python,只要把它们安装在不同的文件夹里。不过,扩展的位数必须和你使用的Python的位数一致。

你短期内的解决办法是,在64位机器上也安装32位的Python。或者你可以自己编译一个64位的扩展。从理论上讲,这个过程很简单,只需要从http://www.microsoft.com/express/Downloads/#2008-All下载Visual Studio 2008 Express(注意要用2008版本,不要用2010版本),然后从http://code.google.com/p/apsw/downloads/list下载APSW的源代码压缩包,接着运行 python setup.py fetch --all build --enable-all-extensions install

编辑(2010年11月7日)如果你安装了Visual Studio 2008 Professional,那么应该可以直接使用。Express版本最初不包含64位编译器,虽然现在已经包含了,但Python的distutils和大部分VS 2008的内容并不知道这些编译器。如果你想自己编译,可以给我发邮件,我会提供更详细的信息。下一个APSW版本将包括适用于Python 2.6及以上版本的Windows 64位二进制文件,包括Python 3系列。

编辑(2010年12月15日)APSW 3.7.4-r1现在在http://code.google.com/p/apsw/downloads/list上提供官方的64位Windows二进制下载。

撰写回答