我想查询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.
这样做的正确方法是什么?
我正在运行一个带有工人阶级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) 我想在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命令正确运行,可以使用。我在哪里错了,或者该怎么办?
这是我的 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”
看起来 Docker Desktop for Mac 正在使用 1.22+ 版本的 Kubernetes,它专门针对ingress-nginx控制器引入了许多重大更改apiVersion。这给我们当地的开发集群带来了问题。
有几个选项:
<1.22开发集群中的某个版本。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.:使用诸如minikube、microk8s、k3d等之类的内容。 …
根据官方指南
\nhttps://docs.gunicorn.org/en/latest/settings.html#settings
\n工作进程在处理完max_requests请求后将重新启动。
但是max_requests_jitter设置后,worker 将在处理完randint(0, max_requests_jitter)请求后重新启动,以错开worker 重新启动以避免所有worker 同时重新启动。
这是否意味着max_requests_jitter设置将被覆盖max_requests并使其无效\xef\xbc\x9f
python ×4
docker ×3
dockerfile ×2
gevent ×2
gunicorn ×2
kubernetes ×2
anaconda ×1
bash ×1
flask ×1
pandas ×1
pip ×1
postgresql ×1
shell ×1
sqlalchemy ×1