小编KZi*_*vas的帖子

os.replace() 和 os.rename() 之间的区别?

我想使用 python 将文件从一个目录移动到 Linux 中的另一个目录。我希望实现类似于 bashmv命令的行为。

这两个命令在实践中有何区别

os.replace()
os.rename()
Run Code Online (Sandbox Code Playgroud)

如果文件存在于目标中,而会覆盖它,是否os.rename()会引发错误os.replace()

另外,如果我看到另一个次要区别,那就是os.replace()需要一个文件作为目标而不仅仅是目录。

我可以在任何地方找到直接答案。

python linux

13
推荐指数
2
解决办法
9366
查看次数

如何使用 VSCode 编辑器打开使用 pyenv 创建的虚拟环境?

我正在 Linux 环境中工作,并使用该pyenv工具创建了我的虚拟环境。我已经在我的工作文件夹中设置了我想要pyenv从命令行使用的本地虚拟环境,例如:pyenv local my_venv_name在我的情况下my_venv_name=3.9.9

当我在该文件夹中打开 VSCode 时,集成终端确实正在打开该虚拟环境,但 VSCode 中的代码似乎无法找到一些已安装的依赖项,我可以看到我已在该特定环境中安装了这些依赖项。我可以pip freeze在终端中执行操作并看到这些包,但 VSCode 却看不到它们。

如何为 VSCode 编辑器设置正确的虚拟环境?

python linux pyenv visual-studio-code

9
推荐指数
1
解决办法
8370
查看次数

在另一个 asyncio.gather() 中使用嵌套的 asyncio.gather()

我有一堂有各种方法的课。我在该类中有一个类似的方法:

 class MyClass:

    async def master_method(self):
      tasks = [self.sub_method() for _ in range(10)]
      results = await asyncio.gather(*tasks)

    async def sub_method(self):
      subtasks = [self.my_task() for _ in range(10)]
      results = await asyncio.gather(*subtasks)

    async def my_task(self):
      return "task done"  
Run Code Online (Sandbox Code Playgroud)

所以这里的问题是:

  1. 使用asyncio.gather()从另一个程序调用的内部协同例程是否存在任何问题、优点/缺点asyncio.gather()?有性能问题吗?

  2. 循环中所有级别的所有任务是否都以相同的优先级处理asyncio?这是否会提供与我使用单个 asyncio.gather() 调用所有协同例程相同的性能master_method

python event-loop coroutine python-asyncio

8
推荐指数
1
解决办法
4662
查看次数

Python APScheduler 失败:“仅支持 pytz 库中的时区”错误

我正在尝试使用 asyncioscheduler 计划作业运行 python 异步应用程序,但 APScheduler 在构建过程中由于以下错误而失败:

“仅支持 pytz 库中的时区”错误

我确实在我的应用程序中包含 pytz 并且我正在传递时区。是什么导致了错误?

我在创建作业管理器的类中调用 asyncioscheduler:

from apscheduler.schedulers.asyncio import AsyncIOScheduler


class ScheduleManager:
    def __init__(self) -> None:
    self.scheduler = AsyncIOScheduler()
    
    def start(self):
    self.scheduler.start()

    def stop(self):
    self.scheduler.shutdown()
    
    def add_seconds_interval_job(self, callback, interval : int):
    self.scheduler.add_job(callback, 'interval', seconds = interval)
    
    def add_minutes_interval_job(self, callback, interval : int):
    self.scheduler.add_job(callback, 'interval', minutes = interval)

    def add_hours_interval_job(self, callback, interval : int):
    self.scheduler.add_job(callback, 'interval', hours = interval)

    def add_days_interval_job(self, callback, interval : int):
    self.scheduler.add_job(callback, 'interval', days = interval)
Run Code Online (Sandbox Code Playgroud)

然后我从我的应用程序中调用该经理,如下所示:

from …
Run Code Online (Sandbox Code Playgroud)

python timezone pytz apscheduler

6
推荐指数
1
解决办法
5964
查看次数

运行 pytest 时如何抑制所有警告?

使用 pytest 运行测试时,某些警告可能会导致问题。可能需要忽略所有警告。我找不到明确的方法来抑制所有警告。

python testing warnings unit-testing pytest

6
推荐指数
2
解决办法
4689
查看次数

在主异步应用程序内的单独进程中运行多个异步循环

好吧,这有点复杂,但我有一个带有很多异步代码的异步类。

我希望在该类中并行化一个任务,并且我想生成多个进程来运行阻塞任务,并且在每个进程中我想创建一个asyncio循环来处理各种子任务。

所以我无法使用 ThreadPollExecutor 来做到这一点,但是当我尝试使用 ProcessPoolExecutor 时,我收到一个 Can't pickle local object 错误

这是我的代码的简化版本,与 ThreadPoolExecutor 一起运行。如何与 ProcessPoolExecutor 并行?

import asyncio
import time
from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor


class MyClass:
    def __init__(self) -> None:
        self.event_loop = None
        # self.pool_executor = ProcessPoolExecutor(max_workers=8)
        self.pool_executor = ThreadPoolExecutor(max_workers=8)
        self.words = ["one", "two", "three", "four", "five"]
        self.multiplier = int(2)

async def subtask(self, letter: str):
    await asyncio.sleep(1)
    return letter * self.multiplier

async def task_gatherer(self, subtasks: list):
    return await asyncio.gather(*subtasks)

def blocking_task(self, word: str):
    time.sleep(1)
    subtasks …
Run Code Online (Sandbox Code Playgroud)

python threadpoolexecutor python-asyncio concurrent.futures python-multiprocessing

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

如何使用访问令牌从 Gitlab 推送和拉取 docker 镜像

我正在尝试使用两因素身份验证将图像推送到 gitlab 注册表。它给了我这个错误消息:

unauthorized: HTTP Basic: Access denied\nYou must use a personal access token with 'api' scope for Git over HTTP
Run Code Online (Sandbox Code Playgroud)

我尝试使用此命令登录,但它仍然显示访问被拒绝:

docker login https://registry.gitlab.com/my_registry -u my_user_name -p my_public_key
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?如何使用公钥推送和拉取图像?

linux bash shell gitlab docker

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

使用python、sqlalchemy在sql数据库上轻松检查表是否存在

您好,我正在使用 sqlalchemy 和 pandas 来处理一些数据,然后将所有内容保存到 sql 数据库中的一个表中。我试图找到一种快速简单且标准化的方法来根据表名检查数据库中是否存在表。

我找到了该has_table()功能,但没有工作示例。有没有人有类似的东西给“引擎连接”和“表名”->如果表存在则返回真或假

python database sqlalchemy

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

无法启动容器进程:权限被拒绝:未知

我正在对我构建的图像执行docker-compose upin WSL,但收到此错误:

Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/my_path/my_shell_script": permission denied: unknown
Run Code Online (Sandbox Code Playgroud)

我在这样的几个问题中找到了一些建议,他们说要更改我尝试访问的目录的权限,但它不起作用,我仍然遇到相同的错误。知道我该如何解决这个问题吗?

linux docker docker-compose windows-subsystem-for-linux

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

如何更新列表中所有数据类对象的属性?

我有以下类型的对象列表:

@dataclass
class Feature:
    name: str
    active: bool
Run Code Online (Sandbox Code Playgroud)

我的清单是:

features = [Feature("name1",False), Feature("name2",False), Feature("name3",True)]
Run Code Online (Sandbox Code Playgroud)

我想取回包含所有功能的列表,但将其active属性切换为True. 我尝试map()这样使用:

active_features=list(map(lambda f: f.active=True,features))
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误expected parameter。如何才能实现这一目标?

请注意 ,我认为这是从示例中得出的,但我想我应该澄清一下。我想用一些简短的内联方法来做到这一点,而不需要按照一些答案的建议定义一个新的单独函数,但也许不能像这样完成?

python python-dataclasses

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