小编han*_*ang的帖子

python urllib2:由peer重置连接

我有一个perl程序从我的大学图书馆的数据库中检索数据,它运作良好.现在我想在python中重写它但遇到问题 <urlopen error [errno 104] connection reset by peer>

perl代码是:

    my $ua = LWP::UserAgent->new;
    $ua->cookie_jar( HTTP::Cookies->new() );
    $ua->timeout(30);
    $ua->env_proxy;
    my $response = $ua->get($url); 
Run Code Online (Sandbox Code Playgroud)

我写的python代码是:

    cj = CookieJar();
    request = urllib2.Request(url); # url: target web page 
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj));
    opener = urllib2.install_opener(opener);
    data = urllib2.urlopen(request); 
Run Code Online (Sandbox Code Playgroud)

我使用VPN(虚拟专用网络)在家里登录我的大学图书馆,我尝试了perl代码和python代码.perl代码按我的预期工作,但python代码总是遇到"urlopen错误".

我搜索了问题,似乎urllib2无法加载环境代理.但是根据urllib2的文档,urlopen()函数可以透明地使用不需要身份验证的代理.现在我感到很困惑.任何人都可以帮我解决这个问题吗?

python urllib2

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

获得大型稀疏矩阵的每行最大值的有效方法

我有一个大的稀疏矩阵,我想获得每一行的最大值.在numpy中,我可以调用numpy.max(mat,axis = 1),但是我找不到scipy稀疏矩阵的类似函数.有没有有效的方法来获得大型稀疏矩阵的每一行的最大值?

python scipy sparse-matrix

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

cython编译错误:函数的多重定义

我创建名为test.c的ac文件,其中两个函数定义如下:

#include<stdio.h>
void hello_1(void){
    printf("hello 1\n");
}
void hello_2(void){
    printf("hello 2\n");
}
Run Code Online (Sandbox Code Playgroud)

之后,我创建test.pyx如下:

import cython
cdef extern void hello_1()
Run Code Online (Sandbox Code Playgroud)

安装文件如下:

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

setup(cmdclass={'buld_ext':build_ext}, 
      ext_modules=[Extension("test",["test.pyx", "test.c"], 
                   include_dirs=[np.get_include()],
                   extra_compile_args=['-g', '-fopenmp'],
                   extra_link_args=['-g', '-fopenmp', '-pthread'])
    ])
Run Code Online (Sandbox Code Playgroud)

当我运行安装文件时,它总是报告hello_1并且hello_2有多个定义.谁能告诉我这个问题?

python compiler-errors cython

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

标签 统计

python ×3

compiler-errors ×1

cython ×1

scipy ×1

sparse-matrix ×1

urllib2 ×1