我无法在 VSCode 中显示 pylint 错误。我全局安装了 pylint(sudo apt install pylint),我创建了 venv 并使用 pip 将它安装在那里,我在 VSCode 中选择了 pylint 作为 linter,启用它,运行它,它没有在我的文件中显示任何错误。如果我从命令行检查,它会在我的文件中显示许多错误。
这在早期有效,但现在在使用 snap 安装的 VSCode 1.46.1 和 1.45.1 版上无效。
与 Microsoft 和 Jedi python 语言服务器的结果相同。
我在开发者控制台中找到了 pylint 命令:
~/Documents/work/python/.venv/bin/python ~/.vscode/extensions/ms-python.python-2020.6.89148/pythonFiles/pyvsc-run-isolated.py pylint --disable=all --enable=F,unreachable,duplicate-key,unnecessary-semicolon,global-variable-not-assigned,unused-variable,unused-wildcard-import,binary-op-exception,bad-format-string,anomalous-backslash-in-string,bad-open-mode,E0001,E0011,E0012,E0100,E0101,E0102,E0103,E0104,E0105,E0107,E0108,E0110,E0111,E0112,E0113,E0114,E0115,E0116,E0117,E0118,E0202,E0203,E0211,E0213,E0236,E0237,E0238,E0239,E0240,E0241,E0301,E0302,E0303,E0401,E0402,E0601,E0602,E0603,E0604,E0611,E0632,E0633,E0701,E0702,E0703,E0704,E0710,E0711,E0712,E1003,E1101,E1102,E1111,E1120,E1121,E1123,E1124,E1125,E1126,E1127,E1128,E1129,E1130,E1131,E1132,E1133,E1134,E1135,E1136,E1137,E1138,E1139,E1200,E1201,E1205,E1206,E1300,E1301,E1302,E1303,E1304,E1305,E1306,E1310,E1700,E1701 --msg-template='{line},{column},{category},{symbol}:{msg}' --reports=n --output-format=text ~/Documents/work/python/micro.py
Run Code Online (Sandbox Code Playgroud)
所以pylint确实被执行了!如果我从命令行像这样运行它,输出是:
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)
Run Code Online (Sandbox Code Playgroud)
但如果我执行pylint micro.py我得到:
Your code has been rated at -2.50/10 (previous run: 10.00/10, -12.50)
Run Code Online (Sandbox Code Playgroud)
为什么 VSCode 使用该命令行?我现在正在测试没有 .pylintrc,但即使我有它,VSCode 也没有显示错误,只有命令行!但是我只是再次尝试,添加了一个 .pylintrc,现在由于某种原因,错误确实出现在编辑器中!
但这仅适用于 Jedi …
所以我有一个512mb内存的vps,以及一个像这样的MySQL表:
CREATE TABLE `table1` (
`id` int(20) unsigned NOT NULL auto_increment,
`ts` timestamp NOT NULL default CURRENT_TIMESTAMP,
`value1` char(31) collate utf8_unicode_ci default NULL,
`value2` varchar(100) collate utf8_unicode_ci default NULL,
`value3` varchar(100) collate utf8_unicode_ci default NULL,
`value4` mediumtext collate utf8_unicode_ci,
`type` varchar(30) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
KEY `type` (`type`),
KEY `date` (`ts`)
) ENGINE=MyISAM AUTO_INCREMENT=469692 DEFAULT CHARSET=utf8
COLLATE=utf8_unicode_ci
Run Code Online (Sandbox Code Playgroud)
如果我执行这样的查询,则需要2~18秒才能完成:
SELECT `id`, `ts`, `value1`, `value2`, `value3` FROM table1 WHERE
`type` = 'something' ORDER BY `id` DESC limit 0,10;
Run Code Online (Sandbox Code Playgroud)
EXPLAIN …
假设我有一个包含两列的mysql表:A和B.是否可以使用唯一键,这样我只能在A或B中插入一次值(整个表中只有一次)?
因此,如果列A包含'qwe'而B包含'asd',那么这两个值就不能再插入任何列中.
这不起作用:
UNIQUE KEY `A` (`A`,`B`),
UNIQUE KEY `A_2` (`A`),
UNIQUE KEY `B` (`B`),
UNIQUE KEY `B_2` (`B`,`A`)
Run Code Online (Sandbox Code Playgroud)
谢谢.
编辑:我能够使用以下触发器完成此操作:
delimiter |
create trigger unique_check before insert on mytable
for each row begin
declare alreadyexists integer;
select count(*) > 0 into alreadyexists from mytable
where A=NEW.B or B=NEW.A;
IF alreadyexists = 1 THEN begin
DECLARE dummy INT;
SELECT 'A OR B already exists' INTO dummy FROM mytable
WHERE nonexistent = 'value';
end;
END IF;
END;|
Run Code Online (Sandbox Code Playgroud)
但是,我没有看到"A OR B已存在"错误消息,但是:
ERROR …
我在12GB磁盘上有9GB myisam表,并具有5MB可用空间。我怎么optimize桌子?
问题是OPTIMIZE可以通过将整个表复制到新文件来工作,因此我需要9GB的可用空间才能成功。
我唯一能想到的解决方案是
将来我应该将表的大小限制为小于可用的可用空间。
我回答了我的问题还是有更好的解决方案?谢谢。
我正在尝试执行以下脚本:
#!/usr/bin/perl -w
use strict;
use DBI;
my $db = "Pg";
my $db_database = "whatever";
my $user = "whatever";
my $password = "whatever";
my $dbh = DBI->connect("dbi:$db:dbname=$db_database", $user, $password);
my $query = $dbh->prepare (q{SELECT
arrival_date - INTERVAL '? MINUTE'
FROM emails LIMIT 1})
or die ("unable to prepare");
$query->execute(60) or die("unable to execute");
print $query->fetchrow_array, "\n";
Run Code Online (Sandbox Code Playgroud)
(arrival_date具有以下格式:带时区的时间戳NOT NULL默认值CURRENT_TIMESTAMP)
问题是没有检测到问号占位符,因为它的内部单引号:
DBD::Pg::st execute failed: called with 1 bind variables when 0 are needed
Run Code Online (Sandbox Code Playgroud)
如果我使用qq {},$ 1占位符,并尝试使用$ dbh-> quote进行一些变化,则无效.我怎样才能做到这一点?