Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sqlite3.connect()在python 3.3中不起作用_Python_Sqlite - Fatal编程技术网

sqlite3.connect()在python 3.3中不起作用

sqlite3.connect()在python 3.3中不起作用,python,sqlite,Python,Sqlite,这可能很简单,但我不明白为什么我的脚本不能工作。我试图与sqlite3数据库建立连接,但eclipse返回错误:“未定义的变量来自导入:connect”。我正在linux上的virtualenv中运行python 3.3。谢谢你的帮助 from urllib.request import urlopen import datetime import sqlite3 class Crawler(): def storeContent(self, html, url):

这可能很简单,但我不明白为什么我的脚本不能工作。我试图与sqlite3数据库建立连接,但eclipse返回错误:“未定义的变量来自导入:connect”。我正在linux上的virtualenv中运行python 3.3。谢谢你的帮助

from urllib.request import urlopen
import datetime
import sqlite3

class Crawler():

    def storeContent(self, html, url):
        conn = sqlite3.connect('database.db')
        c = conn.cursor()
        c.execute("INSERT .. ", [item, item])
        c.commit()
        c.close()

看起来亚历克斯·巴塞罗解决了这个问题

在Ubuntu上对我起作用的几乎是一样的*:

cd /usr/lib/python2.7/lib-dynload/ 
sudo ln -s _sqlite3.x86_64-linux-gnu.so _sqlite3.so
之后,我必须为我的PyDev项目重新配置Python解释器: 项目属性->PyDev解释器/语法->单击此处配置未列出的解释器,然后删除,为您正在使用的python环境运行自动配置,然后单击“应用”


*将“python2.7”替换为使用sqlite3的python版本,如果“\u sqlite3.x86\u 64-linux-gnu.so”不是linux系统的正确文件名,您通常可以使用“locate\u sqlite3”搜索该文件。

Alex Barcelo似乎解决了这个问题

在Ubuntu上对我起作用的几乎是一样的*:

cd /usr/lib/python2.7/lib-dynload/ 
sudo ln -s _sqlite3.x86_64-linux-gnu.so _sqlite3.so
之后,我必须为我的PyDev项目重新配置Python解释器: 项目属性->PyDev解释器/语法->单击此处配置未列出的解释器,然后删除,为您正在使用的python环境运行自动配置,然后单击“应用”


*将“python2.7”替换为使用sqlite3的python版本,如果“\u sqlite3.x86\u 64-linux-gnu.so”不是linux系统的正确文件名,通常可以使用“locate\u sqlite3”搜索它,
connect
是从
\u sqlite3
导入并从
sqlite3
重新导出的函数之一。因此,我要尝试的第一件事是:
import\u sqlite3
。如果可行,请调用
help(\u sqlite3)
dir(\u sqlite3)
查看它们是否正确。此外,尝试导入其他C实现的模块。您可能最终得到了一个32位Python但64位libs的venv,或者其他会破坏所有C模块的东西。我认为导入sqlite3是正确的,因为当我尝试打印(sqlite3.version\u info)时,它会正确返回版本。我还没有检查LIB。再看看我的评论<代码>\u sqlite3,带下划线,是一个C扩展模块
sqlite3
,不带下划线,是一个包装扩展模块的纯Python模块。请尝试我建议的带有下划线的测试。对于其他C扩展模块的测试…在3.3中,大多数都以与
sqlite3
相同的方式包装,但也有一些没有包装。我相信,
importaudioop;打印audioop.\uuuuu文件\uuuuuuu
应该显示一个.so/.dll/.pyd文件,而不是.py文件。当我尝试执行:import sqlite3时,它会说是一个未解析的导入。这是否意味着图书馆是不正确的?audioop返回一个非.py文件,如您所说。很抱歉我不知道,我是一个初学者,通常,
connect
是从
\u sqlite3
导入并从
sqlite3
重新导出的函数之一。因此,我要尝试的第一件事是:
import\u sqlite3
。如果可行,请调用
help(\u sqlite3)
dir(\u sqlite3)
查看它们是否正确。此外,尝试导入其他C实现的模块。您可能最终得到了一个32位Python但64位libs的venv,或者其他会破坏所有C模块的东西。我认为导入sqlite3是正确的,因为当我尝试打印(sqlite3.version\u info)时,它会正确返回版本。我还没有检查LIB。再看看我的评论<代码>\u sqlite3,带下划线,是一个C扩展模块
sqlite3
,不带下划线,是一个包装扩展模块的纯Python模块。请尝试我建议的带有下划线的测试。对于其他C扩展模块的测试…在3.3中,大多数都以与
sqlite3
相同的方式包装,但也有一些没有包装。我相信,
importaudioop;打印audioop.\uuuuu文件\uuuuuuu
应该显示一个.so/.dll/.pyd文件,而不是.py文件。当我尝试执行:import sqlite3时,它会说是一个未解析的导入。这是否意味着图书馆是不正确的?audioop返回一个非.py文件,如您所说。对不起我的无知,我是个初学者,以防你在场。我也有同样的问题,但在虚拟环境中。“我怎样才能解决这个问题?”维克多赫拉斯梅佩雷斯,对不起,真的不知道。我认为我的解决方案在假设您有根访问权限的情况下会起作用,但我想您可能尝试过这个方法,或者没有根访问权限。以防您在场。我也有同样的问题,但在虚拟环境中。“我怎样才能解决这个问题?”维克多赫拉斯梅佩雷斯,对不起,真的不知道。我认为我的解决方案在假设您有根访问权限的情况下会起作用,但我认为您尝试了这个方法或者没有根访问权限。