如何让sqlite在共享主机服务器上工作?

2024-09-28 17:19:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用python2.6.4运行一个python脚本。托管公司已经安装了2.4,所以我在一个类似的服务器上编译了自己的2.6.4,然后将文件移到~/opt/python中。那部分似乎工作得很好。在

不管怎样,当我运行下面的脚本时,我得到了ImportError: No module named _sqlite3,我不知道该怎么做来修复这个问题。在

大多数在线线程都提到sqlite/sqlite3包含在Python2.6中—所以我不确定这是为什么不起作用。在

-jailshell-3.2$ ./pyDropboxValues.py 

Traceback (most recent call last):
  File "./pyDropboxValues.py", line 21, in 
    import sqlite3
  File "/home/myAccount/opt/lib/python2.6/sqlite3/__init__.py", line 24, in 
    from dbapi2 import *
  File "/home/myAccount/opt/lib/python2.6/sqlite3/dbapi2.py", line 27, in 
    from _sqlite3 import *
ImportError: No module named _sqlite3

我想我已经把目录结构的所有东西都设置好了。在

^{pr2}$

最后是sqlite3目录的内容:

-jailshell-3.2$ find `pwd`

/home/myAccount/opt/lib/python2.6/sqlite3
/home/myAccount/opt/lib/python2.6/sqlite3/__init__.pyo
/home/myAccount/opt/lib/python2.6/sqlite3/dump.pyc
/home/myAccount/opt/lib/python2.6/sqlite3/__init__.pyc
/home/myAccount/opt/lib/python2.6/sqlite3/dbapi2.pyo
/home/myAccount/opt/lib/python2.6/sqlite3/dbapi2.pyc
/home/myAccount/opt/lib/python2.6/sqlite3/dbapi2.py
/home/myAccount/opt/lib/python2.6/sqlite3/dump.pyo
/home/myAccount/opt/lib/python2.6/sqlite3/__init__.py
/home/myAccount/opt/lib/python2.6/sqlite3/dump.py

我觉得我需要在sqlite3目录中添加一些东西——也许是sqlite3.so?但我不知道从哪弄来的。在

我做错什么了?请记住,我使用的是共享主机,这意味着在另一台服务器上安装/编译,然后复制这些文件。谢谢!:)

更新 只是想确认@samplebias的答案确实很好。我需要将dev包安装在我正在编译的机器上,以便将它添加到sqlite3.so和相关文件中。也发现答案中的链接很有帮助。谢谢@samplebias!在


Tags: 文件inpyimport目录homeinitlib
3条回答

一般来说,首先要问你的主人。SQLite没有安装(或安装正确),我觉得有点奇怪。所以如果你问他们,他们很可能会很快解决问题。在

Python的构建系统uses a setup.py file to compile all of the native extensions,包括sqlite3。它在常见的操作系统路径中搜索sqlite3 include和library dir。如果没有安装sqlite3开发包,Python将跳过编译_sqlite3.so扩展,但是{}包的纯Python部分仍将被安装。在

在编译Python和运行时,需要安装操作系统的sqlite3开发包:sqlite3-devel,在Centos上是libsqlite3-0和{}。在

下面是我的Ubuntu系统上_sqlite3.so扩展链接的一个例子:

% ldd /usr/lib/python2.6/lib-dynload/_sqlite3.so | grep sqlite3
    libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x00007f29ef3be000)
% dpkg -S /usr/lib/libsqlite3.so.0
    libsqlite3-0: /usr/lib/libsqlite3.so.0

对于python2.4,您需要sqlite和绑定,pysqlite 2或{a2}

相关问题 更多 >