帮助朋友安装apsw时出现奇怪的错误

时间:2010-11-04 02:37:44

标签: python module install

首先,我不知道这是否发生在stackoverflow或其他相关网站之一。 所以,我在我的系统上有apsw,并使用python 2.6 32位。我的朋友正在使用Python 64位,当我尝试在他的系统上安装apsw时,我们遇到了很多错误,具体取决于我们安装它的方式。首先,安装通过exe给我们一个“这个应用程序不是一个有效的win32程序”当我们从我的系统手动安装它时,我们得到一个“ImportError:DLL加载失败:%1不是一个有效的Win32应用程序。”使用sqlite3.dll和sqlite3.lib构建模块也有一些复杂性。

2 个答案:

答案 0 :(得分:4)

披露:我是APSW作者

APSW网站包含一整页,列出了您使用APSW而不是pysqlite的原因。另请注意,标准库中包含的pysqlite甚至比当前的pysqlite代码更旧。

目前我只为32位Pythons提供已编译的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源zip然后运行python setup.py fetch --all build --enable-all-extensions install

编辑(2010年11月 - 07日)如果您安装了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二进制文件下载

答案 1 :(得分:2)

32位和64位二进制文​​件是不同的动物,只有在您知道自己在做什么时才可以混合使用。 您是否尝试在朋友的机器上安装python 2.6 32位?

为什么使用apsw而不是标准库sqlite3?