小编nim*_*dil的帖子

使用完整的Sqlite3作为Linux上的用户构建Python 2.5

这是一个复杂的问题,至少对我而言.在这里:

我在linux服务器上以用户身份工作,可以安全地假设安装任何尚未安装的软件包根本不可能.

此外,我需要使用工作的SQLite3库(未安装的任何形式的Sqlite)设置Python 2.5(未安装).

我能做的是:1.编译Python 2.5并使其工作2.编译SQLite3的合并

无论如何 - Python 2.5应该与Sqlite3内置(pysqlite)进行交互.这似乎是真的,但导入sqlite3:import sqlite3失败,因为 - 最终 - 导入_sqlite3是不可能的

一些谷歌搜索让我明白,虽然pysqlite可能是内置的,但sqlite不是.因此我假设我需要在本地构建sqlite并以某种方式使这两个软件进行交互.

很公平.

我能够 - 我希望如此 - 编译合并到共享对象,但它看起来很混乱.我应该将sqlite3.so重命名为_sqlite3并将其扔到某个地方吗?看起来有点腥,我还是尝试了它并得到一个错误:动态模块没有定义init函数(init_sqlite3)

在这一点上,我有点卡住了.我不太熟悉构建/编译东西 - 我承认sudo apt-get/sudo yum让我很懒,但由于某种原因它暂时不是一个选项.

帮助赞赏!

python sqlite gcc shared-libraries pysqlite

4
推荐指数
1
解决办法
1482
查看次数

SQL Server ignore_dup_key显然忽略了merge语句

SQL Server 2008.

我有几段代码一起工作,效果很奇怪所以我决定分享.

我有一个包含电子邮件的表 - 为简单起见,假设有2列:ID identity(1,1)int primary key email varchar(900)

此外,电子邮件列上还有一个唯一键,IGNORE_DUP_KEY = ON.

问题的另一方面是合并声明:

merge into dbo.email
using (
     select distinct email t from #t
) p 
ON t = email
when not matched by target then
insert (email) values  (t);
Run Code Online (Sandbox Code Playgroud)

值得注意的是,#t基本上是(为了这个查询的目的)一个带有电子邮件varchar(500)的列表.

令人惊讶的是查询失败:

"违反UNIQUE KEY约束'uq_email'.无法在对象dbo.email中插入重复键"

然而,这完美无缺:

insert into dbo.email (email) select email from #t
Run Code Online (Sandbox Code Playgroud)

虽然我显然可以解决这个问题(无论如何插入语句更快,所以它是一种方法)我不知道为什么MERGE语句失败.任何想法,任何人?

编辑:完整用例:第1步:

create table #temp (
col1 varchar(500),
col2 varchar(500),
col3 varchar(500),
col4 varchar(500),
col5 varchar(500),
email varchar(500),
id int)
Run Code Online (Sandbox Code Playgroud)

第2步:

出于多种目的,从CSV文件中填充#temp

第3步:

使用(从#temp中选择不同的电子邮件t)合并到dbo.email中p …

merge unique-key sql-server-2008

3
推荐指数
1
解决办法
2277
查看次数

FPDF 在 Python 中生成空页

我编写了 Python 脚本,该脚本将基于带有 JPEG 的文件夹生成 PDF。没有什么花哨:

import os
from fpdf import FPDF

folders = [ ... here are numbers - folders are numbered ... ]

for folder in folders:
    pdf = FPDF()        
    for fil in os.scandir("parent folder" + str(folder) + "/"):
        pdf.add_page()
        pdf.image(fil.path, w=210, h=297)
    pdf.output("target location/" + str(folder) + ".pdf", "F")
Run Code Online (Sandbox Code Playgroud)

然而,此代码导致 PDF 每隔一页为空白。有趣的是,这段代码:

import os
from fpdf import FPDF

folders = [ ... here are numbers - folders are numbered ... ]

for folder in folders:
    pdf = …
Run Code Online (Sandbox Code Playgroud)

python pdf-generation fpdf

3
推荐指数
1
解决办法
2531
查看次数