小编rui*_*991的帖子

click lib是否提供了打印内置帮助消息的方法?

我正在使用clicklib.

在我的代码中,有时我想打印帮助消息,但我知道的唯一方法是:

python xxx --help
Run Code Online (Sandbox Code Playgroud)

但我想使用某个函数在我的代码中打印帮助消息,例如:

click.print_help_msg()
Run Code Online (Sandbox Code Playgroud)

有这样的功能吗?

python python-click

9
推荐指数
2
解决办法
3716
查看次数

如何处理 sqlalchemy.util._collections.result?

我只想执行sql?

select distinct price from items
Run Code Online (Sandbox Code Playgroud)

所以我写了如下 sqlalchemy 代码:

result_list = session.query(func.distinct(items.price)).all()
Run Code Online (Sandbox Code Playgroud)

在我的数据库中,只有2不同的价格,所以结果应该是100200例如。

但是,它返回一个列表sqlalchemy.util._collections.result。但我想要的是一个int列表,比如[100, 200]

我当然可以这样做:

int_list = [ x.price for x in result_list ]
Run Code Online (Sandbox Code Playgroud)

但是这种“变通办法”实在是太丑了。

那么是否有这样的功能,to_base_type以便我可以编写这样的代码:

int_list = session.query(func.distinct(items.price)).to_base_type()
Run Code Online (Sandbox Code Playgroud)

非常感谢如果有人可以帮助我

python sqlalchemy

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

分段错误 - python C-extension中的核心转储

我正在为 python 编写一个 c 扩展。正如您在下面看到的,代码的目的是计算两个向量的欧几里德距离。第一个参数 n 是向量的维度,第二个,第三个参数是两个浮点列表。

我在 python 中调用函数是这样的:

import cutil
cutil.c_euclidean_dist(2,[1.0,1,0],[0,0])
Run Code Online (Sandbox Code Playgroud)

它运行良好,返回正确的结果。但是如果我这样做超过100次(尺寸为1 * 1000),则会导致分段错误-核心转储:

#!/usr/bin/env python
#coding:utf-8
import cutil
import science
import time
a = []
b = []
d = 0.0 
for x in range(2500):
    a.append([float(i+x) for i in range(1000)])
    b.append([float(i-x) for i in range(1000)])

t1 = time.time()
for x in range(500):
    d += cutil.c_euclidean_dist(1000,a[x],b[x])
print time.time() - t1
print d
Run Code Online (Sandbox Code Playgroud)

C代码在这里:

#include <python2.7/Python.h>
#include <math.h>

static PyObject* cutil_euclidean_dist(PyObject* self, PyObject* args) {
    PyObject *seq_a, *seq_b;
    int …
Run Code Online (Sandbox Code Playgroud)

c python linux python-c-extension

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

在 https 下使用 301 重定向的 Nginx 反向代理

我是 Nginx 的新手,我的目标是什么?

当我访问127.0.0.1:8080/proxy/git/or 时Https://127.0.0.1/proxy/git/,Nginx(反向)代理可以访问https://github.com

我的 nginx conf 很糟糕:

http {

    server {   
    listen  8080 default backlog=2048;  
    listen  443 ssl;

    server_name  127.0.0.1;  

    ssl_certificate /etc/nginx/xxxxxxx.crt;
    ssl_certificate_key /etc/nginx/xxxxxxx.key;

    location /proxy/git/ {   
        proxy_pass https://github.com/;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_pass_header Server;
        proxy_redirect off;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;

        }
        error_page   500 502 503 504  /50x.html;   
   }

    ##
    # Basic Settings
    ##

    sendfile on; 
    tcp_nopush on; 
    tcp_nodelay on; 
    keepalive_timeout 65; 
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size …
Run Code Online (Sandbox Code Playgroud)

proxy redirect reverse-proxy nginx

2
推荐指数
1
解决办法
7080
查看次数