小编Mar*_*yck的帖子

Python3 - 有没有办法在一个非常大的SQlite表上逐行迭代而不将整个表加载到本地内存中?

我有一个非常大的表,有250,000多行,其中很多都在其中一列中包含一个大的文本块.目前它的容量为2.7GB,预计至少增长十倍.我需要在表的每一行上执行特定于python的操作,但是一次只需要访问一行.

现在我的代码看起来像这样:

c.execute('SELECT * FROM big_table') 
table = c.fetchall()
for row in table:
    do_stuff_with_row
Run Code Online (Sandbox Code Playgroud)

当表格较小时,这种工作正常,但是当我尝试运行它时,表格现在比我可用的ram和python挂起的要大.是否有更好的(更有效率的)方法在整个表上逐行迭代?

python sqlite

19
推荐指数
1
解决办法
2万
查看次数

将.whl Python包安装到默认目录以外的特定目录中

我正在尝试将64位版本的NTLK安装在.whl文件中,该文件位于与标准python34/Lib文件夹不同的目录中.我使用的是Windows 10 64位和Python 3.4 64位.

我首先尝试使用此问题中的说明(适用于其他模块).

我输入CMD的命令是:

py -m pip install --install-option="--prefix=$PATH_NAME" nltk-3.0.4-py2.py3-none-any.whl
Run Code Online (Sandbox Code Playgroud)

它立刻给了我以下错误:

UserWarning:由于使用了--build-options/--global-options/--install-options,禁用了所有轮子的使用.

看来我无法使用--install-option安装WHL文件.是否有另一种方法可以将.whl软件包安装在非默认目录中?

编辑:我将此标记为已解决,因为建议的解决方案允许我在自己的用例中执行我需要的操作.但是,由于使用--root选择备用目录的固有限制,它并没有完全回答这个问题.从技术上讲,这个问题没有正确的解决方案,请参阅答案的评论以获取详细信息.

编辑 - 2017年3月3日:看起来此问题已在PIP 8.0版中解决,并添加了--prefix参数.我已相应地改变了接受的答案.

python

12
推荐指数
2
解决办法
6545
查看次数

标签 统计

python ×2

sqlite ×1