小编Gas*_*0de的帖子

如何从Python中的其他文件夹导入模块?

我有一个项目要结构如下:

myproject
  __init__.py
  api
    __init__.py
    api.py
  backend
    __init__.py
    backend.py
  models
    __init__.py
    some_model.py
Run Code Online (Sandbox Code Playgroud)

现在,我想同时在api.py和backend.py中导入some_model.py模块。如何正确执行此操作?我试过了

from models import some_model
Run Code Online (Sandbox Code Playgroud)

但是失败并显示为“ ModuleNotFoundError:没有名为'models'的模块”。我也试过

from ..models import some_model
Run Code Online (Sandbox Code Playgroud)

然后给我“ ValueError:尝试相对顶级包进行相对导入”。我在这里做错了什么?如何从其他目录(不是子目录)导入文件?

python python-3.x python-packaging

7
推荐指数
2
解决办法
9675
查看次数

“dotnet test”没有发现任何测试

我有一个项目,我无法运行测试,dotnet test而我的同事可以。我收到的错误消息是

System.IO.FileNotFoundException: No test is available in C:\projects\...\bin\Debug\netcoreapp1.1\Test.AnalyzeFirmwareRollout.dll. Make sure test project has a nuget reference of package "Microsoft.NET.Test.Sdk" and framework version settings are appropriate and try again.
Run Code Online (Sandbox Code Playgroud)

该项目确实引用了 Microsoft.NET.Test.Sdk 并且目标框架是

<TargetFramework>netcoreapp1.1</TargetFramework>
Run Code Online (Sandbox Code Playgroud)

在 csproj 文件中。有什么想法这里可能出什么问题吗?

c# xunit.net .net-core

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

在事件监听器中创建数据库触发器

我有一个 Flask API,我正在使用 Flask-SQLAlchemy 来处理 SQLite 数据库。我有一个存储日志条目的表,我想将最大行数限制为数字 n。由于插入也是使用原始 SQL 从 Flask 外部的另一个脚本进行的,因此我创建了一个触发器来检查行数并在行数大于 n 时删除最旧的行:

CREATE TRIGGER 'trigger_log_insert' 
BEFORE INSERT ON 'connection_logs' 
WHEN ( SELECT count(*) FROM  'connection_logs' ) > 5 
BEGIN 
DELETE FROM 'connection_logs' 
WHERE id NOT IN ( SELECT id FROM 'connection_logs' ORDER BY id DESC LIMIT 5 ); 
END
Run Code Online (Sandbox Code Playgroud)

该触发器按预期工作,但我很难使用flask-sqlalchemy 设置它。如何使用flask-sqlalchemy 设置触发器/执行原始SQL?SQL 只需要在数据库创建后执行一次,因此我打算在 create_all() 语句之后立即执行它。我偶然发现了这个 StackOverflow 答案,它提出了一个显然很快就会被弃用的解决方案。我还阅读了有关自定义 DDL 的 SQLAlchemy 文档,但我不知道如何使用flask_sqlalchemy 创建此自定义 DDL。当我像 SQLAlchemy 文档中那样创建 DDL 时,我收到一条错误消息 DDL object is not bound to an …

sqlite sqlalchemy flask flask-sqlalchemy

5
推荐指数
1
解决办法
816
查看次数

Openssl:0 深度查找时出现错误 20:无法获取本地颁发者证书

我使用 Python 创建了 3 个证书:rootca.crt、intermediateca.crt 和 server.crt。我使用rootca.crt来签署intermediateca.crt,它按预期工作:

openssl verify -CAfile rootca.crt intermediateca.crt
intermediateca.crt: OK
Run Code Online (Sandbox Code Playgroud)

然后我用中间ca签署了server.crt,但验证失败:

openssl verify -CAfile rootca.crt -untrusted intermediateca.crt server.crt
server.crt: C = DE, ST = mein Bundesland, L = meine Stadt, O = meine Firma, CN = server.example.com, emailAddress = info@meine-firma.de
error 20 at 0 depth lookup:unable to get local issuer certificate
Run Code Online (Sandbox Code Playgroud)

当我解析证书时,server.crt 颁发机构密钥标识符与 middleca 主题密钥标识符相匹配。谁能给我提示可能出了什么问题?如果我使用 openssl 命令行工具生成相同的证书,它就可以工作。解析的内容是相同的,除了授权密钥标识符还包含 openssl 生成的证书的序列号和 cn 之外。

ssl openssl python-3.x python-cryptography

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