RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-415248

dotagenius's questions

Martin Hope
sln
Asked: 2024-11-17 16:34:58 +0000 UTC

为什么Go中会出现not a struct point的错误?

  • 5

我刚开始学习Go,就遇到了这个问题。我正在制作一个 YAML 解析器来填充结构,然后替换默认值。

import (
    "os"

    "github.com/creasty/defaults"
    "gopkg.in/yaml.v3"
)

type ConfigSchema struct {
    Metadata MetadataSchema `yaml:"metadata"`
    Fields   []FieldSchema  `yaml:"fields"`
}

type MetadataSchema struct {
    Name string `yaml:"name"`
}

type FieldSchema struct {
    Settings FieldSettingsSchema `yaml:"settings"`
    Value    string              `yaml:"value"`
}

type FieldSettingsSchema struct {
    Description string `yaml:"description"`
    Enabled     bool   `yaml:"enabled" default:"true"`
}

func main() {
    yamlPath := "C:/path/test.yml"

    var configSchema ConfigSchema
    _ = parse(yamlPath, configSchema)
}

func parse(filePath string, out interface{}) error {
    fileContent, err := os.ReadFile(filePath)
    if err != nil {
        return err
    }

    err = yaml.Unmarshal(fileContent, &out)
    if err != nil {
        return err
    }

    err = defaults.Set(out) // <- "not a struct pointer"
    if err != nil {
        panic(err)
    }

    return nil
}

文件解析正确,但由于某种原因,在填写空值时出现错误not a struct pointer。你能告诉我如何修复它吗?

我想也许我还应该指出 中的链接defaults.Set(&out),但错误仍然存​​在。

另一种选择是将初始化放在var configSchema ConfigSchema函数中parse并返回(ConfigSchema, err)。在这种情况下,一切正常,但有一个特定结构的绑定,但我想实现一个更通用的解析器。

golang
  • 1 个回答
  • 35 Views
Martin Hope
sln
Asked: 2024-02-04 23:22:51 +0000 UTC

为什么 SQLAlchemy 中会出现关系需要类或映射器参数错误?

  • 7

使用 sqlalchemy 为数据库创建表。

class Base(DeclarativeBase):
    pass


class UserPlaylistLink(Base):
    __tablename__ = "user_playlist_link"
    user_id: Mapped[UUID] = mapped_column(ForeignKey("user.id"), primary_key=True)
    playlist_id: Mapped[UUID] = mapped_column(ForeignKey("playlist.id"), primary_key=True)
    status: Mapped[PlaylistStatus] = mapped_column(Enum(PlaylistStatus), nullable=False)


class User(Base):
    __tablename__ = "user"
    id: Mapped[UUID] = mapped_column(primary_key=True)
    mail: Mapped[str]
    playlists: Mapped[list["Playlist"]] = relationship("playlist", secondary="UserPlaylistLink", back_populates="users")


class Playlist(Base):
    __tablename__ = "playlist"
    id: Mapped[UUID] = mapped_column(primary_key=True)
    name: Mapped[str]
    author_id: Mapped[UUID] = mapped_column(nullable=False)
    users: Mapped[list["User"]] = relationship("user", secondary="UserPlaylistLink", back_populates="playlists")

但是当我尝试测试将用户添加到数据库时,开始出现错误:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <Relationship at 0x1271ff24eb0; placelists>
_RelationshipProperty__argument = None

    @util.preload_module("sqlalchemy.orm.mapper")
    def _setup_entity(self, __argument: Any = None) -> None:
        if "entity" in self.__dict__:
            return
    
        mapperlib = util.preloaded.orm_mapper
    
        if __argument:
            argument = __argument
        else:
            argument = self.argument
    
        resolved_argument: _ExternalEntityType[Any]
    
        if isinstance(argument, str):
            # we might want to cleanup clsregistry API to make this
            # more straightforward
            resolved_argument = cast(
                "_ExternalEntityType[Any]",
                self._clsregistry_resolve_name(argument)(),
            )
        elif callable(argument) and not isinstance(
            argument, (type, mapperlib.Mapper)
        ):
            resolved_argument = argument()
        else:
            resolved_argument = argument
    
        entity: _InternalEntityType[Any]
    
        if isinstance(resolved_argument, type):
            entity = class_mapper(resolved_argument, configure=False)
        else:
            try:
                entity = inspect(resolved_argument)
            except sa_exc.NoInspectionAvailable:
                entity = None  # type: ignore
    
            if not hasattr(entity, "mapper"):
>               raise sa_exc.ArgumentError(
                    "relationship '%s' expects "
                    "a class or a mapper argument (received: %s)"
                    % (self.key, type(resolved_argument))
                )
E               sqlalchemy.exc.ArgumentError: relationship 'playlists' expects a class or a mapper argument (received: <class 'sqlalchemy.sql.schema.Table'>)

你能告诉我问题是什么吗?也许我以某种方式误解了它是如何工作的relationship?

如果将 in 行替换relationship(secondary=...)为类本身而不是字符串,IDE 中会出现警告:Expected type 'FromClause | str | () -> FromClause | None', got 'Type[UserPlaylistLink]' instead。

python-3.x
  • 1 个回答
  • 21 Views
Martin Hope
sln
Asked: 2024-01-22 19:20:35 +0000 UTC

如何将环境变量传递给诗歌运行脚本命令?

  • 6

我有一项关于诗歌的服务。

import uvicorn
import os
from fastapi import FastAPI


app = FastAPI(title=os.getenv("APP_NAME", "app"))


def main() -> None:
    uvicorn.run(app, host=os.getenv("APP_HOST", "localhost"), port=os.getenv("APP_PORT", 8000))


if __name__ == "__main__":
    main()

我试图在开始运行一切之前设置环境变量。但我不太明白如何正确地做到这一点。

在执行之前,poetry run main我尝试使用 设置环境变量set KEY=val,但它不起作用,并且它们在代码中仍然不可见。也就是说,set APP_PORT=9000在发布之后,它仍然是 8000。

我尝试设置这样的变量:$env:APP_PORT="9000"。这已经起作用并且代码已经开始运行。但端口 9000 应该是 int (所以错误消息说)并且$env:APP_PORT=9000没有帮助。而且在代码中添加 似乎不是很方便port = int(os.getenv("APP_PORT", 8000))。

如何正确添加变量?如果我通过 PyCharm 运行它,那么一切都会正常。它如何设置环境变量?

python
  • 1 个回答
  • 116 Views
Martin Hope
sln
Asked: 2023-12-22 04:48:09 +0000 UTC

为什么 ASP.NET Core 中的 Host.CreateApplicationBuilder 找不到 appsettings.json?

  • 6

我正在使用 ASP.NET Core 7 创建一个应用程序。但我不明白为什么我无法从中获取值appsettings.json?loggingEnv由于某种原因空了。虽然文档说它appsettings.json是从当前目录自动加载的。

appsettings.json位于与 相同的目录中Program.cs。我也尝试过将appsettings.json其转移到/Properties,但也没有帮助。

如果在运行代码时设置断点,它将builder.Environment.ContentRootPath等于...ProjectFolder\bin\Debug\net7.0,但应该是这样吗?难道不应该很简单吗...ProjectFolder?

Program.cs

var builder = Host.CreateApplicationBuilder();

var loggingEnv = builder.Configuration.GetSection("Logging").GetChildren();

var app = builder.Build();

app.Run();

appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    },
    "File": {
      "Path": "Temp/app.log",
      "Append": true,
      "MinLevel": "Information",
      "FileSizeLimitBytes": 0,
      "MaxRollingFiles": 1
    }
  }
}
c#
  • 2 个回答
  • 43 Views
Martin Hope
sln
Asked: 2023-12-18 16:24:06 +0000 UTC

获取一个块有多困难?为什么在 C# 中将数据复制到 StringBuilder 块中?

  • 7

我理解 中的字符串生成器C#,但我无法理解两件事:

  • 为什么它的实现代码中写的是获取chunk的算术复杂度是O(N*N)or O(N)?它不应该一直存在吗O(log(N))?O(log(N))搜索所需的块 +O(1)通过块内的索引进行检索。
  • 我们这里讨论的将数据传输到新块的操作是什么?为什么要迁移数据?当填充一块时,是否可以简单地将不适合的内容放入2两倍大的新块中?
c#
  • 1 个回答
  • 52 Views
Martin Hope
slx0009
Asked: 2023-12-12 23:42:14 +0000 UTC

C# 中的变量是如何初始化的以及它们在创建之前“位于”何处?

  • 5

有几个变量:

var a = 1;
var b = "string";
var c = false;
var d = new MyClass();

你能解释一下这些变量在初始化之前的值在哪里吗?

我是否正确理解,在编译阶段将值放置在堆中,而在运行时将值从堆中取出?

c#
  • 1 个回答
  • 91 Views
Martin Hope
sln
Asked: 2023-12-10 05:31:32 +0000 UTC

为什么 Logstash 在 Docker 中崩溃并出现错误: Expected one of [ \\t\\r\\n], \"#\", \"input\" ...?

  • 5

设置 ELK。我试图确保一切都刚刚开始(稍后我将添加 Filebeat)。看起来我做的一切都是正确的,但是当我启动 Logstash 时,它崩溃并出现错误:

logstash-1       | Sending Logstash logs to /usr/share/logstash/logs which is now configured via log4j2.properties
logstash-1       | [2023-12-09T21:12:57,201][INFO ][logstash.runner          ] Log4j configuration path used is: /usr/share/logstash/config/log4j2.properties
logstash-1       | [2023-12-09T21:12:57,231][INFO ][logstash.runner          ] Starting Logstash {"logstash.version"=>"8.10.2", "jruby.version"=>"jruby 9.4.2.0 (3.1.0) 2023-03-08 90d2913fda OpenJDK 64-Bit Server VM 17.0.8+7 on 17.0.8+7 +indy +jit [x86_64-linux]"}      
logstash-1       | [2023-12-09T21:12:57,238][INFO ][logstash.runner          ] JVM bootstrap flags: [-Xms1g, -Xmx1g, -Djava.a
wt.headless=true, -Dfile.encoding=UTF-8, -Djruby.compile.invokedynamic=true, -XX:+HeapDumpOnOutOfMemoryError, -Djava.security.egd=file:/dev/uran
dom, -Dlog4j2.isThreadContextMapInheritable=true, -Dls.cgroup.cpuacct.path.override=/, -Dls.cgroup.cpu.path.override=/, -Xmx256m, -Xms256m, -Djr
uby.regexp.interruptible=true, -Djdk.io.File.enableADS=true, --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED, --add-exports=jdk.c
ompiler/com.sun.tools.javac.file=ALL-UNNAMED, --add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED, --add-exports=jdk.compiler/com.
sun.tools.javac.tree=ALL-UNNAMED, --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED, --add-opens=java.base/java.security=ALL-UNNAM
ED, --add-opens=java.base/java.io=ALL-UNNAMED, --add-opens=java.base/java.nio.channels=ALL-UNNAMED, --add-opens=java.base/sun.nio.ch=ALL-UNNAMED, --add-opens=java.management/sun.management=ALL-UNNAMED]
logstash-1       | [2023-12-09T21:12:57,276][INFO ][logstash.settings        ] Creating directory {:setting=>"path.queue", :path=>"/usr/share/logstash/data/queue"}
logstash-1       | [2023-12-09T21:12:57,282][INFO ][logstash.settings        ] Creating directory {:setting=>"path.dead_letter_queue", :path=>"/usr/share/logstash/data/dead_letter_queue"}
logstash-1       | [2023-12-09T21:12:57,828][INFO ][logstash.agent           ] No persistent UUID file found. Generating new UUID {:uuid=>"d638b99d-5934-454f-bf51-953f2522bbe8", :path=>"/usr/share/logstash/data/uuid"}
logstash-1       | [2023-12-09T21:12:59,026][ERROR][logstash.agent           ] Failed to execute action {:action=>LogStash::P
ipelineAction::Create/pipeline_id:main, :exception=>"LogStash::ConfigurationError", :message=>"Expected one of [ \\t\\r\\n], \"#\", \"input\", \
"filter\", \"output\" at line 1, column 1 (byte 1)", :backtrace=>["/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:32:in `compile_imp
erative'", "org/logstash/execution/AbstractPipelineExt.java:239:in `initialize'", "org/logstash/execution/AbstractPipelineExt.java:173:in `initi
alize'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:48:in `initialize'", "org/jruby/RubyClass.java:931:in `new'", "/usr/sh
are/logstash/logstash-core/lib/logstash/pipeline_action/create.rb:49:in `execute'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:386:in `block in converge_state'"]}
logstash-1       | [2023-12-09T21:12:59,103][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600, :ssl_enabled=>false}
logstash-1       | [2023-12-09T21:12:59,124][INFO ][logstash.runner          ] Logstash shut down.
logstash-1       | [2023-12-09T21:12:59,137][FATAL][org.logstash.Logstash    ] Logstash stopped processing because of an error: (SystemExit) exit
logstash-1       | org.jruby.exceptions.SystemExit: (SystemExit) exit
logstash-1       |   at org.jruby.RubyKernel.exit(org/jruby/RubyKernel.java:795) ~[jruby.jar:?]
logstash-1       |   at org.jruby.RubyKernel.exit(org/jruby/RubyKernel.java:758) ~[jruby.jar:?]
logstash-1       |   at usr.share.logstash.lib.bootstrap.environment.<main>(/usr/share/logstash/lib/bootstrap/environment.rb:90) ~[?:?]
logstash-1 exited with code 1

但我不明白为什么。做过logstash.conf:

input {
    beats {
        port => 5044
    }
}

output {
    elasticsearch {
        hosts => "elasticsearch:9200"
    }
}

和logstash.yml:

pipeline.batch.size: 125
pipeline.batch.delay: 50
xpack.monitoring.enabled: false

docker-compose.yml看起来像这样:

version: "3"

services:
  app:
    build: .
    ports:
      - "8080:80"
    networks:
      - main

  logstash:
    image: logstash:8.10.2
    labels:
      co.elastic.logs/enabled: "false"
    ports:
      - "5044:5044"
    environment:
      LS_JAVA_OPTS: "-Xmx256m -Xms256m"
    volumes:
      - ./Configs/logstash.yml:/usr/share/logstash/config/logstash.yml:ro,Z
      - ./Configs/logstash.conf:/usr/share/logstash/pipeline/logstash.conf:ro,Z
    depends_on:
      - app
    networks:
      - main

  elasticsearch:
    image: elasticsearch:8.10.2
    labels:
      co.elastic.logs/enabled: "false"
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      - xpack.security.enabled=false
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - ES_JAVA_OPTS=-Xms512m -Xmx512m
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 32767
        hard: 32767
    cap_add:
      - IPC_LOCK
    volumes:
      - elasticsearch-data:/usr/share/elasticsearch/data
    depends_on:
      - logstash
    networks:
      - main

  kibana:
    image: kibana:8.10.2
    labels:
      co.elastic.logs/enabled: "false"
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
    ports:
      - "5601:5601"
    depends_on:
      - elasticsearch
    networks:
      - main

volumes:
  elasticsearch-data:

networks:
  main:

该错误表明logstash 配置中存在不正确的符号。我查看了 Docker,配置如下所示:

有某种红点。也许没有办法添加呢?这可能是问题所在吗?

docker
  • 1 个回答
  • 23 Views
Martin Hope
slx0009
Asked: 2023-11-20 01:26:26 +0000 UTC

如何返回异步 SQLAlchemy 会话?

  • 5

我有一个带有异步会话生成器的 Python 数据库类。

class Database(AbstractDatabase):
    def __init__(self):
        self._engine = AsyncEngine(create_engine("postgresql+asyncpg://postgres:postgres@localhost/test", echo=True, future=True))
        self._session_maker = sessionmaker(self._engine, class_=AsyncSession, expire_on_commit=False)
  
    def get_session_maker(self) -> sessionmaker:
        return self._session_maker

我有一个从该数据库接收数据的存储库。

class UsersRepository(AbstractUsersRepository):
    def __init__(self, db: AbstractDatabase):
        self._db = db

    async def get(self, entity_id: UUID) -> User:
        async with self._db.get_session_maker()() as session:
            return await session.get(User, entity_id)

一切工作正常,但我不喜欢该方法的工作原理和外观get_session_maker。可以做这样的事情吗?

class Database(AbstractDatabase):
    def __init__(self):
        self._engine = AsyncEngine(create_engine("postgresql+asyncpg://postgres:postgres@localhost/test", echo=True, future=True))
        self._session_maker = sessionmaker(self._engine, class_=AsyncSession, expire_on_commit=False)

    async def get_session(self) -> AsyncSession:
        async with self._session_maker() as session:
            yield session


class UsersRepository(AbstractUsersRepository):
    def __init__(self, db: AbstractDatabase):
        self._db = db

    async def get(self, entity_id: UUID) -> User:
        session = await self._db.get_session()
        return await session.get(User, entity_id)

但我无法执行这个确切的选项,因为我收到错误TypeError: object async_generator can't be used in 'await' expression。我真的不明白为什么。它不是这样工作的:вызывается get-> get_session начинает сессию и возвращает ее-> get закончил выполнение->вернулся к get_session и закрыл сессию吗?

我也尝试过这个选项,但它也不起作用。

async def get_session(self) -> AsyncSession:
    session: AsyncSession = self._session_maker()
    try:
        yield session
    except Exception as e:
        await session.rollback()
        print(f"An error occurred: {e}")
    finally:
        await session.close()
python
  • 1 个回答
  • 49 Views
Martin Hope
slx0009
Asked: 2023-11-13 04:54:54 +0000 UTC

为什么会出现 AttributeError: NoneType object has no attribute send 错误?

  • 5

我了解 SQLAlchemy 和 FastAPI。我做了一个路由器并初始化了数据库,但由于某种原因,路由器的第一行出现错误:

INFO:     ::1:55018 - "GET /api/v1/places/ HTTP/1.1" 500 Internal Server Error
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "C:\Users\dmm\AppData\Local\Programs\Python\Python312\Lib\asyncio\base_events.py", line 772, in call_soon
    self._check_closed()
  File "C:\Users\dmm\AppData\Local\Programs\Python\Python312\Lib\asyncio\base_events.py", line 519, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 426, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\uvicorn\middleware\proxy_headers.py", line 84, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\fastapi\applications.py", line 1106, in __call__
    await super().__call__(scope, receive, send)
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\starlette\applications.py", line 122, in __call__
    await self.middleware_stack(scope, receive, send)
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\starlette\middleware\errors.py", line 184, in __call__
    raise exc
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\starlette\middleware\errors.py", line 162, in __call__
    await self.app(scope, receive, _send)
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\starlette\middleware\exceptions.py", line 79, in __call__
    raise exc
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\starlette\middleware\exceptions.py", line 68, in __call__
    await self.app(scope, receive, sender)
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\fastapi\middleware\asyncexitstack.py", line 20, in __call__
    raise e
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\fastapi\middleware\asyncexitstack.py", line 17, in __call__
    await self.app(scope, receive, send)
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\starlette\routing.py", line 718, in __call__
    await route.handle(scope, receive, send)
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\starlette\routing.py", line 276, in handle
    await self.app(scope, receive, send)
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\starlette\routing.py", line 66, in app
    response = await func(request)
               ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\fastapi\routing.py", line 274, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\fastapi\routing.py", line 191, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dmm\testProject\api\v1\endpoints\places.py", line 15, in get_by_query
    places = await session.execute(select(PlacelistTable))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\ext\asyncio\session.py", line 455, in execute
    result = await greenlet_spawn(
             ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 190, in greenlet_spawn
    result = context.throw(*sys.exc_info())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\orm\session.py", line 2308, in execute
    return self._execute_internal(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\orm\session.py", line 2190, in _execute_internal
    result: Result[Any] = compile_state_cls.orm_execute_statement(
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\orm\context.py", line 293, in orm_execute_statement
    result = conn.execute(
             ^^^^^^^^^^^^^
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 1416, in execute
    return meth(
           ^^^^^
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\sql\elements.py", line 516, in _execute_on_connection
    return connection._execute_clauseelement(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 1639, in _execute_clauseelement
    ret = self._execute_context(
          ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 1848, in _execute_context
    return self._exec_single_context(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 1988, in _exec_single_context
    self._handle_dbapi_exception(
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 2346, in _handle_dbapi_exception
    raise exc_info[1].with_traceback(exc_info[2])
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 1969, in _exec_single_context
    self.dialect.do_execute(
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\engine\default.py", line 922, in do_execute
    cursor.execute(statement, parameters)
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\dialects\postgresql\asyncpg.py", line 591, in execute
    self._adapt_connection.await_(
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 125, in await_only
    return current.driver.switch(awaitable)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 185, in greenlet_spawn
    value = await result
            ^^^^^^^^^^^^
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\dialects\postgresql\asyncpg.py", line 527, in _prepare_and_execute
    await adapt_connection._start_transaction()
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\dialects\postgresql\asyncpg.py", line 861, in _start_transaction
    self._handle_exception(error)
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\dialects\postgresql\asyncpg.py", line 810, in _handle_exception
    raise error
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\sqlalchemy\dialects\postgresql\asyncpg.py", line 859, in _start_transaction
    await self._transaction.start()
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\asyncpg\transaction.py", line 146, in start
    await self._connection.execute(query)
  File "C:\Users\dmm\testProject\venv\Lib\site-packages\asyncpg\connection.py", line 350, in execute
    result = await self._protocol.query(query, timeout)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "asyncpg\protocol\protocol.pyx", line 374, in query
  File "asyncpg\protocol\protocol.pyx", line 367, in asyncpg.protocol.protocol.BaseProtocol.query
  File "asyncpg\protocol\coreproto.pyx", line 1094, in asyncpg.protocol.protocol.CoreProtocol._simple_query
  File "asyncpg\protocol\protocol.pyx", line 966, in asyncpg.protocol.protocol.BaseProtocol._write
  File "C:\Users\dmm\AppData\Local\Programs\Python\Python312\Lib\asyncio\proactor_events.py", line 366, in write
    self._loop_writing(data=bytes(data))
  File "C:\Users\dmm\AppData\Local\Programs\Python\Python312\Lib\asyncio\proactor_events.py", line 402, in _loop_writing
    self._write_fut = self._loop._proactor.send(self._sock, data)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'send'

我不明白她为什么会出现。我运行了调试器,一切都已创建。该async def get_all(session: AsyncSession = Depends(get_session)) -> list[Place]:会话不是 None 并且其状态是is_active。不知道可能是什么问题?

_session_maker: async_sessionmaker | None = None


async def get_session() -> AsyncSession:
    async with _session_maker() as session:
        yield session


async def init_db():
    global _session_maker
    engine = create_async_engine("postgresql+asyncpg://postgres:postgres@localhost/test")
    async with engine.begin() as conn:
        await conn.run_sync(Base.metadata.create_all)
    _session_maker = async_sessionmaker(engine, class_=AsyncSession, expire_on_commit=False)
@place_router.get("/")
async def get_all(session: AsyncSession = Depends(get_session)) -> list[Place]:
    places = await session.execute(select(PlaceTable))
    places = placelists.scalars().all()
    return places
async def main():
    await init_db()
    app = FastAPI(title=APP_NAME, version=API_VERSION)
    app.include_router(api_router)
    return app


if __name__ == "__main__":
    uvicorn.run(asyncio.run(main()), host="localhost", port=8000)
python
  • 1 个回答
  • 38 Views
Martin Hope
slx0009
Asked: 2023-10-17 15:24:09 +0000 UTC

如何获得新的圆心坐标,使其不与轮廓相交?

  • 6

我正在学习Python中的Opencv并制作一个小项目。Opencv 窗口创建可以使用手部动作推动的圆圈。大部分代码已经完成 - 读取手部动作并获取其轮廓并创建圆圈(圆圈的数据存储在全局数组中)。但我不知道如何推动杯子。

录制视频时,会处理每一帧。我有手的轮廓以及圆的坐标和半径。也就是说,你需要遍历每个圆并检查它是否与轮廓相交。如果没有,那么一切都很好,如果相交,那么您需要垂直于轮廓移动圆,使其停止相交。然后,使用圆圈中的新数据绘制它们(这也准备好了)。

但我还是不明白到底怎样才能把圆圈移开?

python-3.x
  • 1 个回答
  • 59 Views
Martin Hope
slx0009
Asked: 2023-07-13 23:03:27 +0000 UTC

如何将一个正方形分成N个相同的矩形并得到它们的掩码?

  • 5

我有正方形的宽度和最终区域的数量,以及该正方形应划分的数量。可以使用什么算法来查找每个区域的掩码?

强调了这个问题中的一些事实:

  • 如果有宽度,那么就知道正方形中有多少个单元格
  • 如果有细胞总数和最终区域的数量,那么就知道每个区域中有多少个细胞

但它能带来什么?

这里有几个例子:

Ширина - 4
Количество зон - 2

 0123
0AAAA
1AAAA
2BBBB
3BBBB

Ответ: [
   [[0, 0, 0, 0],
    [0, 0, 0, 0],
    [1, 1, 1, 1],
    [1, 1, 1, 1]],

   [[1, 1, 1, 1],
    [1, 1, 1, 1],
    [0, 0, 0, 0],
    [0, 0, 0, 0]]
]

如果区域是这样的,那么这也是合适的,只是答案会有点不同:

 0123
0AABB
1AABB
2AABB
3AABB
Ширина - 6
Количество зон - 9

 012345
0AABBCC
1AABBCC
2DDEEFF
3DDEEFF
4GGHHII
5GGHHII

Ответ: [
   [[1, 1, 0, 0, 0, 0],
    [1, 1, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0],

   [[0, 0, 1, 1, 0, 0],
    [0, 0, 1, 1, 0, 0],
    [0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0],

    ...
]

在第一种情况下,可以按顺序经历双循环,一旦收集到一定数量的细胞,就可以进入下一个区域。但是第二种情况该怎么办呢?在那里不可能执行此操作,因为只会获取第一行中的前 4 个单元格。

c#
  • 2 个回答
  • 49 Views
Martin Hope
slx0009
Asked: 2023-07-12 23:12:40 +0000 UTC

如何使用 C# Perlin 噪声创建一定比例的实体?

  • 5

我有一个二维数组形式的区域地图。1我使用 Perlin 噪声在其上生成树 ( )。

0 0 0 0 0      0 1 1 1 1
0 0 0 0 0      1 1 1 0 0
0 0 0 0 0  ->  0 1 0 1 1
0 0 0 0 0      0 1 0 0 0
0 0 0 0 0      1 1 1 0 0

生成时,我指定要创建多少百分比的树。

for (var x = sector.top; x < sector.topOffset; x++)
for (var y = sector.left; y < sector.leftOffset; y++)
{
    var rawNoise = Mathf.PerlinNoise((x - noiseOffsetX) / noiseScale, (y - noisnoiseScale);
    var clampedNoise = Mathf.Clamp(rawNoise, 0, 1);
    if (clampedNoise < percent)
    {
        _map[x, y] = 1;
    }
}

但现在我想创建石头 ( 2),以便它们仅出现在空字段 ( 0) 上,同时保持我选择的百分比。我无法理解如何做到这一点(如果可能的话)。

如果我只是检查是否下注0,那么最终石头的百分比将会减少,因为那些试图在树上生成的石头将无法做到这一点。

我还考虑过使用通常的随机选项。在这里可以用循环保存百分比:пока не заспавниться N штук。但已经存在一个问题,即它们的位置过于随机,而不是像 Perlin 的噪音那样“成堆”。像那样:

0 1 1 1 1
1 2 0 2 1
2 0 0 0 1
0 1 0 2 0
2 1 1 0 2

还有一个选项可以将所有生成实体一次传递给生成方法,以便进行多项检查:

for (var x = sector.top; x < sector.topOffset; x++)
for (var y = sector.left; y < sector.leftOffset; y++)
{
    var rawNoise = Mathf.PerlinNoise((x - noiseOffsetX) / noiseScale, (y - noisnoiseScale);
    var clampedNoise = Mathf.Clamp(rawNoise, 0, 1);
    if (clampedNoise < wood)
    {
        _map[x, y] = 1;
    }
    else if (clampedNoise < stone)
    {
        _map[x, y] = 2;
    }
}

但石头永远只会围绕着树木,你需要更多的随机性:

2 1 1 1 1
1 2 2 2 1
2 0 0 2 1
1 0 2 0 2
2 1 1 2 0

这就是地图本身现在的填充方式:

var terrainMaskBuilder = new TerrainMaskBuilder(mapSize);       
terrainMaskBuilder.AddPerlinTerrain(Size.FullMap, entity: 1, percent: 0.6, noiseScale: 5);
terrainMaskBuilder.AddPerlinTerrain(Size.FullMap, entity: 2, percent: 0.2, noiseScale: 5);
var result = terrainMaskBuilder.Get();

UPD1:有一个选项可以使用噪声创建带有实体的蒙版,将它们覆盖在地图上并检查它们是否有 N%。如果没有,则创建一个新掩码。如此while循环。但这种方法的最优程度如何?

c#
  • 1 个回答
  • 45 Views
Martin Hope
slx0009
Asked: 2023-06-23 13:21:25 +0000 UTC

为什么抽象类/方法的代码中的覆盖率不正确

  • 5

这就是我想要测试的代码:

class AbstractWrapper(ABC):
    @abstractmethod
    def func(self) -> None:
        raise NotImplementedError  # *


class Wrapper(AbstractWrapper):
    def func(self) -> None:
        print(1)  # *

我编写了 pytest 测试并运行了命令pytest --cov --cov-report=html。但由于某种原因,报告显示*测试未涵盖 的行。但测试工作正常并检查代码(如果输入数据不正确,则测试不会通过,如果输入正确,则测试会通过)。

我该如何解决这个问题,也许我使用了错误的命令?

python
  • 1 个回答
  • 22 Views
Martin Hope
dotagenius
Asked: 2022-09-19 02:04:16 +0000 UTC

如果类继承自 MonoBehaviour,如何在 Unity 场景开始之前输入数据?

  • 2

我正在 Unity 中制作塔防游戏。它需要某些小怪在波浪中生成。
在我看过的所有指南中,每个暴徒的生成之间都有相同的延迟,但应该可以毫无延迟地将它们分组生成。

这是屏幕截图,以使其更清晰。
和指南一样

我需要怎么做

为此,我制作了一个波浪管理器。

public class WavesManager : MonoBehaviour
{
    public LevelData levelData;
    public List<Wave> waves;
    private int currentWaveIndex = -1;

    private void Awake()
    {
        waves = levelData.waves;
    }

    public void StartNextWave()
    {
        currentWaveIndex++;
        if (currentWaveIndex == waves.Count) return;
        waves[currentWaveIndex].Spawn(levelData.pieces);
    }
}

这是波浪本身的类

[Serializable]
public class Wave : MonoBehaviour
{
    public List<Squad> squads = new();

    public void Spawn(List<Piece> pieces)
    {
        StartCoroutine(nameof(SpawnSquads), pieces);
    }

    private IEnumerator SpawnSquads(List<Piece> pieces)
    {
        foreach (var squad in squads)
        {
            squad.Spawn(pieces);
            yield return new WaitForSeconds(squad.otherSquadDelay);
        }
    }
}

还有阵容

[Serializable]
public class Squad : MonoBehaviour
{
    public string enemyTitle;
    public int amount;
    public int innerDelay;
    public int otherSquadDelay;

    public void Spawn(List<Piece> pieces)
    {
        StartCoroutine(nameof(SpawnEnemies), pieces);
    }

    private IEnumerator SpawnEnemies(IEnumerable<Piece> pieces)
    {
        var piece = pieces.Select(x => x)
            .First(x => x.title == enemyTitle);
        for (var i = 0; i < amount; i++)
        {
            piece.Spawn();
            yield return new WaitForSeconds(innerDelay);
        }
    }
}

问题是由于继承自 MonoBehaviour,我无法提前确定如何设置谁以及如何在小队中生成,并且无法将其删除,因为协程不起作用。

这是另一个脚本,我在其中预先输入了波浪和小队的数据。

[CreateAssetMenu(fileName = "LevelData", menuName = "ScriptableObjects/LevelData")]
public class LevelData : ScriptableObject
{
    public List<Piece> pieces;
    public List<Wave> waves;
}
c#
  • 0 个回答
  • 0 Views
Martin Hope
dotagenius
Asked: 2022-09-03 02:40:38 +0000 UTC

如何在 useContext React 中使用组件?

  • 0

项目结构如下图所示: stage 是来自 KonvaJS 的一个场景;layer 和 rect 也是 conva 对象;控制块只是一个带有按钮的 div。

我不知道如何做到这一点,以便当您单击右侧块中的按钮时,左侧块中矩形的颜色会随着useContext.

在应用程序中这样做

import React, {useRef, useState} from "react";
import LeftBlockfrom "../LeftBlock/LeftBlock";
import ControlBlock from "../ControlBlock/ControlBlock";
import {StageContext} from "../../context";
import {Layer, Rect, Stage} from "react-konva";

function App() {
    const [stage, setStage] = useState(
        <Stage width={500} height={500}>
            <Layer>
                <Rect width={500} height={500} />
            </Layer>
        </Stage>
    );

    return (
        <StageContext.Provider value={stage}>
            <LeftBlock />
            <ControlBlock />
        </StageContext.Provider>
    );
}

export default App;

这是上下文

import {createContext} from 'react';

export const StageContext = createContext(null);

这是左块中的场景本身

const KonvaStage = () => {
    const stage = useContext(StageContext);
    return (
        {stage}
    );
};

在这种情况下,控制台写道:Uncaught Error: Objects are not valid as a React child (found: object with keys {Stage}). If you meant to render a collection of children, use an array instead.

我做错了什么以及如何在舞台上设置按钮和矩形之间的交互?

javascript reactjs
  • 1 个回答
  • 48 Views
Martin Hope
dotagenius
Asked: 2022-07-10 22:45:32 +0000 UTC

如何在画布js中的浮动图像顶部显示文本?

  • 0

在这个问题的答案中,有一个画布中物体移动的例子。
如何在中心显示画布中的文本,以便画布的内容可以像以前一样移动,但文本保持静止?

我放置ctx.font = "48px serif"; ctx.fillText(text, canvas.width / 2, 100);在正方形的输出之后,但由于某种原因,文本附加到它们并移动。

const ctx = canvas.getContext("2d");
canvas.width = 500;
canvas.height = 500;
const rand = (m = 255, M = m + (m = 0)) => (Math.random() * (M - m) + m) | 0;


const objects = [];
for (let i = 0; i < 100; i++) {
  objects.push({x: rand(canvas.width), y: rand(canvas.height),w: rand(40),h: rand(40), col: `rgb(${rand()},${rand()},${rand()})`});
}

requestAnimationFrame(drawCanvas); 

const view = (() => {
  const matrix = [1, 0, 0, 1, 0, 0]; // current view transform
  var m = matrix;             // alias 
  var scale = 1;              // current scale
  var ctx;                    // reference to the 2D context
  const pos = { x: 0, y: 0 }; // current position of origin
  var dirty = true;
  const API = {
    set context(_ctx) { ctx = _ctx; dirty = true },
    apply() {
      if (dirty) { this.update() }
      ctx.setTransform(m[0], m[1], m[2], m[3], m[4], m[5])
    },
    get scale() { return scale },
    get position() { return pos },
    isDirty() { return dirty },
    update() {
      dirty = false;
      m[3] = m[0] = scale;
      m[2] = m[1] = 0;
      m[4] = pos.x;
      m[5] = pos.y;
    },
    pan(amount) {
      if (dirty) { this.update() }
       pos.x += amount.x;
       pos.y += amount.y;
       dirty = true;
    },
    scaleAt(at, amount) { // at in screen coords
      if (dirty) { this.update() }
      scale *= amount;
      pos.x = at.x - (at.x - pos.x) * amount;
      pos.y = at.y - (at.y - pos.y) * amount;
      dirty = true;
    },
  };
  return API;
})();
view.context = ctx;
function drawCanvas() {
    if (view.isDirty()) { 
        ctx.setTransform(1, 0, 0, 1, 0, 0); 
        ctx.clearRect(0, 0, canvas.width, canvas.height);

        view.apply(); // set the 2D context transform to the view
        for (i = 0; i < objects.length; i++) {
            var obj = objects[i];
            ctx.fillStyle = obj.col;
            ctx.fillRect(obj.x, obj.y, obj.h, obj.h);
        }
        ctx.font = "48px serif";
        ctx.fillText("Hello World!", canvas.width / 2, 50);
    }
    requestAnimationFrame(drawCanvas);
}


canvas.addEventListener("mousemove", mouseEvent, {passive: true});
canvas.addEventListener("mousedown", mouseEvent, {passive: true});
canvas.addEventListener("mouseup", mouseEvent, {passive: true});
canvas.addEventListener("mouseout", mouseEvent, {passive: true});
canvas.addEventListener("wheel", mouseWheelEvent, {passive: false});
const mouse = {x: 0, y: 0, oldX: 0, oldY: 0, button: false};
function mouseEvent(event) {
    if (event.type === "mousedown") { mouse.button = true }
    if (event.type === "mouseup" || event.type === "mouseout") { mouse.button = false }
    mouse.oldX = mouse.x;
    mouse.oldY = mouse.y;
    mouse.x = event.offsetX;
    mouse.y = event.offsetY    
    if(mouse.button) { // pan
        view.pan({x: mouse.x - mouse.oldX, y: mouse.y - mouse.oldY});
    }
}
function mouseWheelEvent(event) {
    var x = event.offsetX;
    var y = event.offsetY;
    if (event.deltaY < 0) { view.scaleAt({x, y}, 1.1) }
    else { view.scaleAt({x, y}, 1 / 1.1) }
    event.preventDefault();
}
body {
  background: gainsboro;
  margin: 0;
}
canvas {
  background: white;
  box-shadow: 1px 1px 1px rgba(0, 0, 0, .2);
}
<canvas id="canvas"></canvas>

画布中需要文本,因为我将画布的所有内容保存到图像中。

javascript canvas
  • 1 个回答
  • 23 Views
Martin Hope
dotagenius
Asked: 2022-07-09 20:37:05 +0000 UTC

如何使比例缩放图像更接近JS画布中的光标?

  • 0
const image = {
    object: new Image(),
    x: 0,
    y: 0,
    scale: 1,
    scaleMultiplier: 0.9
}

function draw() {
    ctx.clearRect(0, 0, canvasWidth, canvasHeight);
    ctx.save();
    ctx.translate(image.x, image.y);
    ctx.scale(image.scale, image.scale);

    const imageWidth = image.object.width;
    const imageHeight = image.object.height;
    const centerCoordsX = (canvasWidth - imageWidth) / 2;
    const centerCoordsY = (canvasHeight - imageHeight) / 2;
    const t1 = (centerCoordsX + image.x) / (image.scale * 2);
    const t2 = (centerCoordsY + image.y) / (image.scale * 2);

    ctx.drawImage(image.object, t1, t2, imageWidth, imageHeight);
    ctx.fill();
    ctx.restore();
}

canvas.onwheel = function(e) {
    if (e.deltaY < 0)
        image.scale /= image.scaleMultiplier;
    else
        image.scale *= image.scaleMultiplier;
    draw();
};

滚动鼠标滚轮时,图像现在缩放到左上角,但是如何使其缩放到光标坐标?

javascript
  • 1 个回答
  • 48 Views
Martin Hope
dotagenius
Asked: 2022-08-02 01:33:22 +0000 UTC

C# Linq 中此代码的 PostgreSQL 等效项

  • 0

PostgreSQL上有这个查询:

SELECT t.flight_id, COUNT(*) AS c, COALESCE(SUM(t.amount), 0) AS coal
FROM ticket_flights AS t
GROUP BY t.flight_id
HAVING COUNT(*) > 5

我不知道如何用 C# 编写它。这是我得到的:

var x = from tf in db.Ticket_Flights
    group tf by tf.Flight_Id into g
    where g.Count() > 5 
    select new { g.Key, Count = g.Count(), Sum = g ?? 0.0};

貌似前3行改写正确,但是-th有select问题。

c#
  • 1 个回答
  • 10 Views
Martin Hope
dotagenius
Asked: 2022-07-18 01:15:47 +0000 UTC

如何以 C# 的非指数形式返回一个数字?

  • -1

有一种创建哈希函数的方法:

private static double GenerateHash(string number)
{
    var s = 0d;
    for (var i = 1; i <= 20; i++) 
        s += Math.Pow(300, 20 - i) * number[i - 1];
    s %= 1000000000000000;
    return s;
}

number[i - 1]是 ASCII 字符代码
number总是长于 19 个字符

在这条线s %= 1000000000000000; s看起来像这样之前:1.234E+40。
例如,当number = 00000000000000000000达到字符串s %= 1000000000000000; s = 5.5975134196655518E+48.

指数形式对数字很四舍五入,如何让数字写成一个整体?

我尝试使用 ulong 和 long 而不是 double 格式,但由于某种原因,在这两种情况下,差点s在第一次迭代时为负数,并且在所有后续迭代中它等于 0。我
还制作了与此代码等效的代码python 并且数字在那里完整显示。

def get_hash(number):
    n = len(number)
    s = 0
    for i in range(1, n + 1):
        s += (300 ** (n - i)) * ord(number[i - 1])
    s %= 1000000000000000
    return s
c#
  • 1 个回答
  • 10 Views
Martin Hope
dotagenius
Asked: 2022-06-16 01:27:03 +0000 UTC

如何加快在 Python 字典中查找数据的速度?

  • 0

我有一个字符串列表和一本字典。例如:

a = ["a", "b", "c", "d"]
d = {
    "1": 
        {
            "ids": ["7612029690", "7612018248"], 
            "words": ["d", "o", "m"]
        },
    "2": 
        {
            "ids": ["7612018249", "7612029691"], 
            "words": ["a", "b", "c"]
        },
    ....
}

我需要从dkey"words"的列表中找到具有最多元素的字典元素a。以下是计算方法。

def find_best(a, d):
    result = {"words": [], "intersactions": 0}
    for v in d.values():
        i = len(list(set(a) & set(v["words"])))
        if i > result["intersactions"]:
            result = {"words": v, "intersactions": i}
    return result

如何加快搜索速度?建立数据索引会对此有所帮助吗?如果使用数据库和 sqlite3,代码会运行得更快吗?

python
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5