小编goF*_*ard的帖子

numpy,scipy,matplotlib和pylab之间的混淆

Numpy,scipy,matplotlib和pylab是使用python进行科学计算的常用术语.

我只是学习了一下pylab,我感到很困惑.每当我想导入numpy时,我总能做到:

import numpy as np
Run Code Online (Sandbox Code Playgroud)

我只是考虑,一旦我做了

from pylab import *
Run Code Online (Sandbox Code Playgroud)

numpy也将被导入(带np别名).所以基本上第二个与第一个相比做了更多的事情.

我想问几件事:

  1. 是不是pylab只是numpy,scipy和matplotlib的包装器?
  2. 由于np是pylab中的numpy别名,pylab中的scipy和matplotlib别名是什么?(据我所知,plt是matplotlib.pyplot的别名,但我不知道matplotlib本身的别名)

python numpy matplotlib scipy

130
推荐指数
2
解决办法
7万
查看次数

如何在leaflet-cloudmade中使用Google Maps API

有没有办法将Google地图与leaflet-cloudmade集成?我的意思是,我不想使用原始的cloudmade地图,但我想改用谷歌地图.我想要显示一张阿拉斯加地图(那里没有很多道路).如果我使用cloudmade地图,它将只是白色.

如果我想使用cloudmade map,这就是我要做的事情:

var cloudmade = new L.TileLayer('http://{s}.tile.cloudmade.com/YOUR-API-KEY/997/256/{z}/{x}/{y}.png', {
    attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://cloudmade.com">CloudMade</a>',
    maxZoom: 18
});
Run Code Online (Sandbox Code Playgroud)

我知道我应该更改'http:// {s} .tile.cloudmade.com/YOUR-API-KEY/997/256/{z}/{x}/{y} .png'部分.但是,如果我想使用谷歌地图(或任何其他地图),我应该写在那里?

这是传单 - cloudmade的文档(他们没有说太多关于使用第三方地图提供者.他们说他们对我们的应用程序中使用的地图提供者不可知,所以我认为应该可以使用谷歌地图) .

gis google-maps leaflet

22
推荐指数
2
解决办法
3万
查看次数

POST方法总是返回403 Forbidden

我读过Django - CSRF验证失败,以及与django和POST方法相关的几个问题(和答案).其中一个最好但不能正常工作的答案是/sf/answers/329534761/

所有批准的答案都表明至少有三件事:

  1. 使用RequestContext作为render_to_response_call的第三个参数
  2. 使用POST方法在每个表单中添加{%csrf_token%}
  3. 检查settings.py中的MIDDLEWARE_CLASSES

我完全按照建议做了,但错误仍然出现.我使用django 1.3.1(来自ubuntu 12.04存储库)和python 2.7(默认来自ubuntu)

这是我的观点:

# Create your views here.
from django.template import RequestContext
from django.http import HttpResponse
from django.shortcuts import render_to_response
from models import BookModel

def index(request):
    return HttpResponse('Welcome to the library')

def search_form(request):
    return render_to_response('library/search_form.html')

def search(request):
    if request.method=='POST':
        if 'q' in request.POST:
            q=request.POST['q']
            bookModel = BookModel.objects.filter(title__icontains=q)
            result = {'books' : bookModel,}
            return render_to_response('library/search.html', result, context_instance=RequestContext(request))
        else:
            return search_form(request)
    else:
        return search_form(request)
Run Code Online (Sandbox Code Playgroud)

这是我的模板(search_form.html):

{% extends "base.html" %}
{% …
Run Code Online (Sandbox Code Playgroud)

django post csrf django-csrf

13
推荐指数
4
解决办法
4万
查看次数

CodeIgniter HMVC扩展了MX_Controller,无法正确使用get_instance

我在/ application/core中有一个控制器

/application/core/CMS_Controller.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

require APPPATH."third_party/MX/Controller.php";

class CMS_Controller extends MX_Controller {

    public function __construct() {
        parent::__construct();
    }

    public function show_something() {
        echo "something shown";
    }
} 
Run Code Online (Sandbox Code Playgroud)

我在模块中有另一个控制器(/modules/my_module/controllers/controller.php),它从CMS_Controller扩展而来

/modules/my_module/controllers/controller.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Controller extends CMS_Controller {

    public function index() {
        $this->load->view('view');
    }
} 
Run Code Online (Sandbox Code Playgroud)

并且,在view.php(/modules/my_module/views/view.php)中我这样做: /modules/my_module/views/view.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 $ci =& get_instance();
 echo $ci->show_something();
?> 
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

致命错误:在第3行的/home/gofrendi/public_html/No-CMS/modules/my_module/views/view.php中调用未定义的方法CI :: …

php codeigniter hmvc

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

amqplib:套接字在打开握手期间突然关闭

我正在尝试做什么

我尝试创建rabbit-mq 发布者和订阅者。它按预期工作,直到我尝试重新启动我的rabbit-mq 服务器。

什么有效

我使用rabbitmq:3-managementdocker image、ampqlib 5.3和 Node.js11.10.0来制作这个简单的程序:

const q = 'tasks';

const { execSync } = require("child_process");
const amqplib = require("amqplib");

function createChannel() {
    return amqplib.connect("amqp://root:toor@0.0.0.0:5672/")
        .then((conn) => conn.createChannel());
}

Promise.all([createChannel(), createChannel()])

    .then(async (channels) => {
        const [publisherChannel, consumerChannel] = channels;

        // publisher
        await publisherChannel.assertQueue(q).then(function(ok) {
            return publisherChannel.sendToQueue(q, Buffer.from("something to do"));
        });

        // consumer
        await consumerChannel.assertQueue(q).then(function(ok) {
            return consumerChannel.consume(q, function(msg) {
                if (msg !== null) {
                    console.log(msg.content.toString());
                    consumerChannel.ack(msg);
                }
            });
        });

    }) …
Run Code Online (Sandbox Code Playgroud)

rabbitmq node.js node-amqplib

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

在heroku上部署matplotlib失败了.怎么做到这一点?

我使用pip在virtualenv中安装了matplotlib.一开始是失败的,但在我做完之后easy_install -U distribute,安装顺利进行.

这是我做的(在我的git仓库根文件夹中):

virtualenv env
source env/bin/activate
pip install gunicorn
pip install numpy
easy_install -U distribute
pip install matplotlib
Run Code Online (Sandbox Code Playgroud)

然后,我使用了make.txt pip freeze > requirements.txt.结果如下:

argparse==1.2.1
distribute==0.7.3
gunicorn==17.5
matplotlib==1.3.0
nose==1.3.0
numpy==1.7.1
pyparsing==2.0.1
python-dateutil==2.1
six==1.3.0
tornado==3.1
wsgiref==0.1.2
Run Code Online (Sandbox Code Playgroud)

我尝试部署应用程序时出现问题:

(env)gofrendi@kirinThor:~/kokoropy$ git push -u heroku
Counting objects: 9, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 586 bytes, done.
Total 5 (delta 3), reused 0 (delta 0)

-----> Python app detected …
Run Code Online (Sandbox Code Playgroud)

python matplotlib heroku python-2.7

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

如何制作基于web的python交互式shell

https://www.pythonanywhere.com/try-ipython/等网站如何运作?

他们可能会做几个exec命令,或者与ipython接口.

然而,如果他们没有做任何"预防措施"(他们这样做),这可能是非常不安全的.仅仅(和邪恶的)用户可以做类似的事情

import shutil, os
Run Code Online (Sandbox Code Playgroud)

做坏事.

技术上怎么web based python interactive shell可能?如何确保交互式shell不会对提供商造成任何不良影响?

python security shell web

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

PHP include无法读取源文件的更改

我的问题(可能在您的计算机中没有发生)

我有2个PHP脚本。

读取的第一个脚本包括第二个脚本以获取变量,更改值以及执行file_put_contents更改第二个脚本。

<?php
include('second.php'); // in second.php, $num defined as "1" 
$num ++;               // now $num should be "2"
// Change content of second.php
file_put_contents('second.php', '<?php $num='.$num.'; ?>'); 
include('second.php'); // Now here is the problem, $num's value is still "1"
echo $num;             // and I get an unexpected result "1"
?>
Run Code Online (Sandbox Code Playgroud)

第二个脚本仅包含一个变量

<?php $num=1; ?>
Run Code Online (Sandbox Code Playgroud)

我希望结果为“ 2”,但似乎第二个include不会读取file_put_contents所做的更改。

我的第一个猜测是file_put_contents函数中可能存在并发问题,因此当执行第二个include时,第二个文件并未真正更改。

我尝试通过将第一个脚本更改为此来测试我的猜测:

<?php
include('second.php');
$num ++;
file_put_contents('second.php', '<?php $num='.$num.'; ?>');
// show the contains of second.php
echo '<pre>' . str_replace(array('<','>'), array('&lt;', '&gt;'), …
Run Code Online (Sandbox Code Playgroud)

php

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

已经发送了CodeIgniter头,并在index.php的开头发送了ob_start()

在我的申请中,我可以确保没有这种"无意"的空白或其他什么.我不在控制器或模型上执行"echo",但是日志文件中始终存在"header already sent"错误(浏览器中没有显示).我也没有关闭php标签.唯一"可疑"的事情是我在模型和控制器上加载会话和输入库.

这实际上不是一个大问题,但如果我使用CLI请求,则错误会变得很糟糕.

浏览片刻后,我在堆栈溢出时找到了这个答案:https: //stackoverflow.com/a/13783368/755319 它说我可以在index.php的开头添加ob_start()用于输出缓冲

<?php
ob_start();
/*
 *---------------------------------------------------------------
 * APPLICATION ENVIRONMENT
 *--------------------------------------------------------------- 
Run Code Online (Sandbox Code Playgroud)

是保存做这样的事情吗?

编辑:好的,我可能错了,错过了一些东西.有没有任何程序化的方法来找出错误?(找到错误的php标签,空格或其他东西的程序)?

再次编辑:错误仅在CLI模式下生成.错误如下:

<h4>A PHP Error was encountered</h4>

<p>Severity: Notice</p>
<p>Message:  Undefined index: REMOTE_ADDR</p>
<p>Filename: core/Input.php</p>
<p>Line Number: 351</p>

</div><div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">

<h4>A PHP Error was encountered</h4>

<p>Severity: Warning</p>
<p>Message:  Cannot modify header information - headers already sent by (output started at /home/gofrendi/public_html/No-CMS/system/core/Exceptions.php:185)</p>
<p>Filename: libraries/Session.php</p>
<p>Line Number: 675</p>
Run Code Online (Sandbox Code Playgroud)

php codeigniter

3
推荐指数
1
解决办法
9368
查看次数

Python:使用 html 解析器提取特定数据

我开始使用 Python 中的 HTMLParser 从网站中提取数据。我得到了我想要的一切,除了 HTML 的两个标签内的文本。以下是 HTML 标记的示例:

<a href="http://wold.livingsources.org/vocabulary/1" title="Swahili" class="Vocabulary">Swahili</a>
Run Code Online (Sandbox Code Playgroud)

还有其他以 . 开头的标签。它们具有其他属性和值,因此我不想拥有它们的数据:

<a href="http://wold.livingsources.org/contributor#schadebergthilo" title="Thilo Schadeberg" class="Contributor">Thilo Schadeberg</a>
Run Code Online (Sandbox Code Playgroud)

标签是表格中的嵌入标签。我不知道这是否对其他标签有任何影响。我只想要一些名为“a”的标签中的信息,属性 class="Vocabulary",我想要标签内的数据,在示例中它是“斯瓦希里语”。所以我所做的是:

class AllLanguages(HTMLParser):
    '''
    classdocs
    '''
    #counter for the languages
    #countLanguages = 0
    def __init__(self):
        HTMLParser.__init__(self)
        self.inLink = False
        self.dataArray = []
        self.countLanguages = 0
        self.lasttag = None
        self.lastname = None
        self.lastvalue = None
        #self.text = ""


    def handle_starttag(self, tag, attr):
        #print "Encountered a start tag:", tag      
        if tag == 'a':
            for name, value in attr:
                if …
Run Code Online (Sandbox Code Playgroud)

html python html-parsing html-parser python-2.7

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

如何不小心覆盖python中的方法?

我知道那里有很多类似的问题.但我的问题不同. 我不想制作一个无法覆盖的方法. 我想保护我新创建的类不要意外覆盖某些东西.

使用下划线作为前缀是相当不错的,但很快我会得到许多带有很多下划线的方法.在我继承的类中的某个地方,我将覆盖祖先祖先的类方法.

我真正想要的是这样简单:

class Cat(Mammal):
    def walk(self):
        if ancestor_has_function('walk'):
            parent.walk();
        do_something_here();
Run Code Online (Sandbox Code Playgroud)

如果任何Cat的祖先(无论是哺乳动物,动物还是生命形式)都有"行走"方法,那么应首先执行父方法.

这有可能在python中这样做吗?

编辑: 例如,这是我认为好的答案的简历.希望这会有助于其他人:

class Animal(object):
    pass
    #def walk(self):
    #    print('animal walk')

class Mammal(Animal):
    def walk(self):
        if hasattr(super(Mammal, self), 'walk') and callable(super(Mammal,self).walk):
            super(Mammal, self).walk()
        print('mammal walk')

class Cat(Mammal):
    def walk(self):
        super(Cat, self).walk()
        print('cat walk')

if __name__ == '__main__':
    cat = Cat()
    cat.walk()
Run Code Online (Sandbox Code Playgroud)

这是输出:

哺乳动物走路

猫步

尝试取消注释Animal的walk方法,你也可以使用它.

python class

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