小编Jim*_*hez的帖子

正确的相对导入:“无法导入模块”

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

.
??? myapp
    ??? app.py
    ??? models
    ?   ??? hello.py
    ?   ??? world.py
    ??? requirements.txt
Run Code Online (Sandbox Code Playgroud)

我有两个模型,helloworld。这两种模型都是从app.py我将其导入的地方使用的:

from models.hello import Hello
from models.world import World
Run Code Online (Sandbox Code Playgroud)

而且world还需要使用hello。我想这在world.py

from models.hello import Hello
Run Code Online (Sandbox Code Playgroud)

当我运行该应用程序时,以上内容在技术上有效,但是VSCode的Python扩展给我以下错误:

E0401:Unable to import 'models.hello'.
Run Code Online (Sandbox Code Playgroud)

从同一目录导入子模块的正确方法是什么?如何避免VSCode中的此错误?

python python-3.x visual-studio-code

8
推荐指数
4
解决办法
7347
查看次数

ThreadPoolExecutor 与来自两个列表的所有参数

我有两个清单:

a = [1, 2, 3, 4]
b = [9, 8, 7, 6]
Run Code Online (Sandbox Code Playgroud)

我希望将这两个列表的每个组合作为参数传递给我正在执行多线程处理的函数:

def test(hello, world):
    return hello + world

with ThreadPoolExecutor(max_workers=10) as executor:
    future_to_stuff = { executor.submit(self._http_check_port, hello, world): ### }
    for future in as_completed(future_to_port):
        ...
Run Code Online (Sandbox Code Playgroud)

我试图找出如何“解压缩”我的两个列表,以便在值的每个组合a,并b作为PARAMS给函数发送。

multithreading python-3.x

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

Pythonic方式将格式应用于字典中的所有字符串而不使用f字符串

我有一个字典,看起来像这样:

d = {
  'hello': 'world{x}',
  'foo': 'bar{x}'
}
Run Code Online (Sandbox Code Playgroud)

运行format字典中所有值的pythonic方法是什么?例如,x = 'TEST'最终结果应该是:

{
  'hello': 'worldTEST',
  'foo': 'barTEST'
}
Run Code Online (Sandbox Code Playgroud)

注意:我正在d从另一个模块加载,所以不能使用f-strings.

python formatting dictionary python-3.x

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

将 Scrapy 作为脚本运行时禁用日志

我在我的脚本中使用 Scrapy,如文档中的常见实践中所述

我需要完全禁用 Scrapy 日志(不更改详细程度)。我试过这个:

Spider.custom_settings['LOG_ENABLED'] = False
Run Code Online (Sandbox Code Playgroud)

和这个:

configure_logging({'LOG_ENABLED': False})
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,Scrapy 仍在记录所有内容。

在脚本中运行Scrapy时如何完全禁用Scapy日志(请注意,我有自己想要保留的记录器,它只是我想要删除的Scrapy日志)。

python scrapy python-3.x

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