小编rom*_*lym的帖子

使用sqlalchemy从PostgreSQL查询返回Pandas数据帧

我想查询PostgreSQL数据库并将输出作为Pandas数据帧返回.

我使用'SqlAlchemy'创建了与数据库的连接:

from sqlalchemy import create_engine
engine = create_engine('postgresql://user@localhost:5432/mydb')
Run Code Online (Sandbox Code Playgroud)

我将Pandas数据帧写入数据库表:

i=pd.read_csv(path)
i.to_sql('Stat_Table',engine,if_exists='replace')
Run Code Online (Sandbox Code Playgroud)

根据文档,看起来pd.read_sql_query()应该接受SQLAlchemy引擎:

a=pd.read_sql_query('select * from Stat_Table',con=engine)
Run Code Online (Sandbox Code Playgroud)

但它抛出一个错误:

ProgrammingError: (ProgrammingError) relation "stat_table" does not exist
Run Code Online (Sandbox Code Playgroud)

我正在使用Pandas版本0.14.1.

这样做的正确方法是什么?

python postgresql sqlalchemy pandas

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

如何在 kubernetes 的 pod 中设置 Gunicorn 工作编号

我正在运行一个带有工人阶级flask的应用程序。在我自己的测试环境中,我按照官方指南设置worker编号。gunicorngeventmultiprocessing.cpu_count() * 2 + 1

如果我想将应用程序放在 Kubernetes 的 pod 上并假设资源如下

resources:
  limits:
    cpu: "10"
    memory: "5Gi"
  requests:
    CPU: "3"
    memory: "3Gi"
Run Code Online (Sandbox Code Playgroud)

如何计算工人数量?我应该使用限制 CPU 还是请求 CPU?


附言。我通过pyinstaller本质上打包的二进制文件启动应用程序flask run(python script.py),并在主线程中启动gunicorn:

def run():
    ...
    if config.RUN_MODEL == 'GUNICORN':
        sys.argv += [
            "--worker-class", "event",
            "-w", config.GUNICORN_WORKER_NUMBER,
            "--worker-connections", config.GUNICORN_WORKER_CONNECTIONS,
            "--access-logfile", "-",
            "--error-logfile", "-",
            "-b", "0.0.0.0:8001",
            "--max-requests", config.GUNICORN_MAX_REQUESTS,
            "--max-requests-jitter", config.GUNICORN_MAX_REQUESTS_JITTER,
            "--timeout", config.GUNICORN_TIMEOUT,
            "--access-logformat", '%(t)s %(l)s %(u)s "%(r)s" %(s)s %(M)sms',
            "app.app_runner:app"
    ]
    sys.exit(gunicorn.run())

if __name__ == "__main__":
    run() …
Run Code Online (Sandbox Code Playgroud)

python gevent flask gunicorn kubernetes

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

在Docker中安装并使用pip和virtualenv

我想在Ubuntu的Docker容器中安装Python,Pip和virtualenv,我通过Dockerfile创建映像:

FROM ubuntu:16.04

RUN apt-get update -y

RUN apt-get

RUN apt-get python3 -y

RUN apt-get install python3-pip -y

RUN pip install virtualenv
...
Run Code Online (Sandbox Code Playgroud)

当它到达这里时,它出来的结果是“ / bin / sh:1:pip:not found”,但是在安装过程中没有异常显示,这是否意味着我没有正确安装pip?还是在使用点子指令之前应该做其他事情?

然后,我像这样更改了Dockerfile:

...
RUN apt-get python3 -y

RUN apt-get install python3-pip -y

RUN apt-get install python3-virtualenv -y 

RUN virtualenv --no-stie-packages -p /path/python3 py3env
...
Run Code Online (Sandbox Code Playgroud)

但它仍然在说/ bin / sh:1:virtualenv:找不到,就在这里

我也安装了git,git clone命令正确运行,可以使用。我在哪里错了,或者该怎么办?

python pip docker dockerfile

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

跳过在 Dockerfile 中安装确认('yes' 或 'no')

这是我的 dockerfile 的一部分:

FROM ubuntu:16.04

#ubuntu:lastest

RUN apt-get update

COPY Anaconda3-4.4.0-Linux-x86_64.sh /root/

WORKDIR /root/

RUN bash Anaconda3-4.4.0-Linux-x86_64.sh

RUN conda upgrade --all

...
Run Code Online (Sandbox Code Playgroud)

在Anaconda(bash Anaconda3-4.4.0-Linux-x86_64.sh)的安装过程中,有一个许可需求协议,需要我回答“是”,

安装确认

但是当它在 dockerfile 中运行时,它显示如下 就像一直按 ENTER 键,我怎样才能跳过这个确认或输入“yes”

bash shell docker anaconda dockerfile

5
推荐指数
0
解决办法
948
查看次数

在 Docker Desktop for Mac 中指定 Kubernetes 版本

看起来 Docker Desktop for Mac 正在使用 1.22+ 版本的 Kubernetes,它专门针对ingress-nginx控制器引入了许多重大更改apiVersion。这给我们当地的开发集群带来了问题。

有几个选项:

  1. 将 Kubernetes 版本回滚到<1.22开发集群中的某个版本。
  2. 更新ingress-nginx和开发配置使用>=1.22

我正在尝试采用路线1.并降级版本以匹配我们的生产集群:v1.20.7主要是因为 1.22+ 在 Azure 中不可用,但它看起来像。对我来说,让开发版本和生产版本匹配是有意义的。

这就是我的问题:如何更改使用的 Kuberentes 版本docker-desktop

如果那做不到,那么我想我只能去2.


到目前为止所尝试的只是遵循kubectl 文档

curl -LO "https://dl.k8s.io/release/v1.20.7/bin/darwin/arm64/kubectl"

chmod +x ./kubectl

sudo mv ./kubectl /usr/local/bin/kubectl

kubectl version --client
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.0", GitCommit:"ab69524f795c42094a6630298ff53f3c3ebab7f4", GitTreeState:"clean", BuildDate:"2021-12-07T18:08:39Z", GoVersion:"go1.17.3", Compiler:"gc", Platform:"darwin/arm64"}
Run Code Online (Sandbox Code Playgroud)

怀疑它是否会起作用,但事实证明它不起作用。


编辑:

选项3.:使用诸如minikubemicrok8sk3d等之类的内容。 …

docker kubernetes docker-desktop

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

Gunicorn中max_requests和max_requests_jitter之间的机制是什么

根据官方指南

\n

https://docs.gunicorn.org/en/latest/settings.html#settings

\n

工作进程在处理完max_requests请求后将重新启动。

\n

但是max_requests_jitter设置后,worker 将在处理完randint(0, max_requests_jitter)请求后重新启动,以错开worker 重新启动以避免所有worker 同时重新启动。

\n

这是否意味着max_requests_jitter设置将被覆盖max_requests并使其无效\xef\xbc\x9f

\n

python gevent gunicorn

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