小编Anj*_*Man的帖子

从eclipse运行时,关闭matplotlib中预先存在的数字

我的问题很简单:我有一个使用matplotlib生成数字的python脚本.每次我运行它都会生成带有数字的新窗口.如何让脚本关闭上次运行时打开的窗口?

matlab中的类似命令是在matlab脚本的开头放置"关闭所有".

我已经看到了一些建议来做类似的事情

import matplotlib.pyplot as plt
plt.close("all")
Run Code Online (Sandbox Code Playgroud)

如果您从python shell运行脚本,例如使用,则此解决方案有效

>>>> execfile("myScript.py")
Run Code Online (Sandbox Code Playgroud)

但是,我发现如果我使用Eclipse/PyDev运行脚本,这不起作用.我怎样才能让它在Eclipse中运行?

例:

from numpy import *
from matplotlib.pyplot import *
from scipy import *

close("all") 
    #close any previously open plots - this doesn't work when running via Eclipse

t = linspace(0, 0.1,1000)
w = 60*2*pi

figure()
plot(t,cos(w*t))
plot(t,cos(w*t-2*pi/3))
plot(t,cos(w*t-4*pi/3))
show()
Run Code Online (Sandbox Code Playgroud)

这应绘制一个漂亮的三相电源的理想波形.

python numpy matplotlib pydev

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

为android requestSingleUpdate设置超时

我正在使用带有LocationListener的android LocationManager库的例程requestSingleUpdate()reoutine .我试图实现的功能是用户可以按下按钮,应用程序将获取其当前位置并执行反向地理编码以获取大致地址.

我的问题是,根据设备的网络情况,获取位置可能需要很长时间.如何实现超时,导致我的'requestSingleUpdate()'放弃并告诉用户找出他们自己的血腥地址?

我的代码:

LocationManager locationManager = (LocationManager)  getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setPowerRequirement(Criteria.POWER_HIGH);

locationManager.requestSingleUpdate(criteria, new LocationListener(){

        @Override
        public void onLocationChanged(Location location) {
            // reverse geo-code location

        }

        @Override
        public void onProviderDisabled(String provider) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProviderEnabled(String provider) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onStatusChanged(String provider, int status,
                Bundle extras) {
            // TODO Auto-generated method stub

        }

    }, null);
Run Code Online (Sandbox Code Playgroud)

android android-location

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

如何使用pip作为docker build的一部分安装本地包?

我有一个包,我想要构建一个docker镜像,它取决于我系统上的相邻包.

requirements.txt看起来像这样:

-e ../other_module
numpy==1.0.0
flask==0.12.5

当我打电话pip install -r requirements.txt给virtualenv时,这很好.但是,如果我在Dockerfile中调用它,例如:

ADD requirements.txt /app
RUN pip install -r requirements.txt

并运行使用docker build .我得到一个错误说明如下:

../other_module should either be a path to a local project or a VCS url beginning with svn+, git+, hg+, or bzr+

如果有的话,我在这里做错了什么?

python pip docker

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

类中的函数实例变量

我正在尝试在我的方法中实现一个所谓的静态变量,类似于此Stackoverflow线程中描述装饰器方法.具体来说,我定义了一个装饰器函数如下:

def static_var(varName, value):
    def decorate(function):
        setattr(function,varName,value)
        return function
    return decorate
Run Code Online (Sandbox Code Playgroud)

如示例所示,这可用于将变量附加到函数:

@static_var('seed', 0)
def counter():
    counter.seed +=1
    return counter.seed
Run Code Online (Sandbox Code Playgroud)

此方法将返回已调用的次数.

我遇到的问题是,如果我在类中定义方法,这不起作用:

class Circle(object):

    @static_var('seed',0)
    def counter(self):
        counter.seed +=1
        return counter.seed
Run Code Online (Sandbox Code Playgroud)

如果我实例化Circle并运行counter,

>>>> myCircle = Circle()
>>>> myCircle.counter()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:NameError: global name 'counter' is not defined.

我对此的回应是,我可能需要使用self.counter,即

class Circle(object):

    @static_var('seed',0)
    def counter(self):
        self.counter.seed +=1
        return self.counter.seed
Run Code Online (Sandbox Code Playgroud)

但是这会产生错误AttributeError: 'instancemethod' object has no attribute 'seed'.

这里发生了什么?

python oop

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

标签 统计

python ×3

android ×1

android-location ×1

docker ×1

matplotlib ×1

numpy ×1

oop ×1

pip ×1

pydev ×1