Странная ошибка при помощи друга в установке apsw - PullRequest
0 голосов
/ 04 ноября 2010

Во-первых, я не знаю, идет ли это по стеку или одному из других связанных сайтов.Итак, у меня есть apsw в моей системе, и я использую Python 2.6 32 бит.Мой друг использует Python 64 bit, и когда я попытался установить apsw в его системе, мы получили множество ошибок, в зависимости от того, как мы его установили.Прежде всего, установка через exe дала нам «Это приложение не является действительной программой win32». Когда мы вручную установили его из моей системы, мы получили «ImportError: Ошибка загрузки DLL:% 1 не является допустимым приложением Win32».И у нас есть некоторые сложности с созданием модуля тоже с sqlite3.dll и sqlite3.lib.

Ответы [ 2 ]

4 голосов
/ 04 ноября 2010

Раскрытие: я автор APSW

Веб-сайт APSW содержит целую страницу со списком причин, по которым вам следует использовать APSW вместо pysqlite. Также обратите внимание, что pysqlite, включенный в стандартную библиотеку, даже старше, чем текущий код pysqlite.

В настоящее время я предоставляю только скомпилированные расширения Windows APSW для 32-битных питонов. Вы можете запустить 32- и 64-битный Python на 64-битной Windows, если вы установите их в разные каталоги. Однако разрядность расширений должна соответствовать разрядности Python, с которым вы его используете.

Ваше краткосрочное решение - также установить 32-битный Python на 64-битную машину. В качестве альтернативы вы можете скомпилировать 64-битное расширение самостоятельно. Теоретически это так же просто, как установить Visual Studio 2008 Express из http://www.microsoft.com/express/Downloads/#2008-All (обратите внимание, использовать версию 2008, а не версию 2010), загрузить исходный архив APSW из http://code.google.com/p/apsw/downloads/list и затем запустить python setup.py fetch --all build --enable-all-extensions install

Редактировать (2010-ноябрь-07) Если у вас установлена ​​Visual Studio 2008 Professional, это должно сработать. Первоначально Express не включал 64-битные компиляторы, хотя теперь они включены, но дистрибутивы Python и большая часть остальной части VS 2008 о них не знают. Напишите мне, если вы хотите сделать сборку самостоятельно, и я дам более подробную информацию. Следующий выпуск APSW будет включать в себя 64-битные двоичные файлы Windows для Python 2.6 и выше, включая серию Python 3.

Редактировать (2010-Dec-15) APSW 3.7.4-r1 теперь включает в себя официальные 64-битные двоичные загрузки Windows с http://code.google.com/p/apsw/downloads/list

2 голосов
/ 04 ноября 2010

32-битные и 64-битные двоичные файлы - разные животные, и их можно смешивать, только если вы знаете, что делаете Вы пробовали установить 32-битную версию Python 2.6 на компьютер вашего друга?

Почему вы используете apsw вместо стандартной библиотеки sqlite3?

...