小编dee*_*pak的帖子

为什么Docker OS的图像尺寸如此之小?

如果我从Docker Hub中提取Ubuntu图像docker pull ubuntu:14.04,然后列出我的图像,docker images我看到Ubuntu图像的虚拟大小只有~188MB.我不明白为什么图像大小比我在OS X上运行VM时可能使用的Ubuntu ISO的大小要小得多.我使用OS X,所以我使用docker-machine来设置一个docker守护进程.Docker如何能够以如此小的占用空间在OS X上运行Ubuntu映像?

ubuntu docker

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

在python中,为什么要从内置模块导入'object'?

为了转换到python 3,我试图理解编写python 2和python 3兼容代码.下面的代码来自python-future.org并说明了构造一个与两个版本的python兼容的迭代器的方法.

from builtins import object

class Upper(object):
    def __init__(self, iterable):
        self._iter = iter(iterable)
    def __next__(self):      # Py3-style iterator interface
        return next(self._iter).upper()  # builtin next() function calls
    def __iter__(self):
        return self

itr = Upper('hello')
assert next(itr) == 'H'      # compatible style
assert list(itr) == list('ELLO')
Run Code Online (Sandbox Code Playgroud)

代码在python 2中运行正常,但令我惊讶的是,如果我删除import语句,那么我得到一个错误TypeError: Upper object is not an iterator.我经常从我的自定义类派生,object但我从未从内置导入它.为什么简单导入会object改变代码的行为?

python python-2.7

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

Fortran的彩色终端输出

我的程序向终端输出计算状态,并包含相当多的信息.我想,如果可能的话,颜色代码文本的部分.

我已经看到如何通过引用此站点上的线程在Bash和C++中完成它.但是,我无法使用其中任何一个来在Fortran(现代)中实现相同的结果.例如,我尝试了这个示例代码,我认为应该可以使用:

PROGRAM test
    PRINT*, 'A great color is \033[95m pink \033[0m.'
END PROGRAM test
Run Code Online (Sandbox Code Playgroud)

我原本预计输出会是"粉红色的粉红色".相反,我得到"一个伟大的颜色是\ 033 [95米粉红色\ 033 [0m." 我不明白我错过了什么.

如果我用以下代码替换代码中的打印行:CALL EXECUTE_COMMAND_LINE("echo"一个很好的颜色是\ 033 [95m pink\033 [0m.'"))然后我根据需要得到输出.但是我不想继续从我的代码中调用echo.有什么方法可以获得彩色输出吗?

谢谢!

fortran fortran90

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

C++异常和ld符号警告

我正在玩在C++中创建异常,我有以下测试代码:

#include <iostream>
#include <stdexcept>
#include <new>
using namespace std;

class Myerror : public runtime_error {
    private: 
        string errmsg;
    public:
        Myerror(const string &message): runtime_error(message) { }
};

int main(int argc, char *argv[]) {
    throw Myerror("wassup?");
}
Run Code Online (Sandbox Code Playgroud)

我正在编译这个:

icpc -std = c ++ 11 -O3 -m64

编译后,我得到这个ld警告:

ld:警告:在_main中直接访问全局弱符号__ZN7MyerrorD1Ev表示在运行时无法覆盖弱符号.这可能是由使用不同可见性设置编译的不同翻译单元引起的.

如果我使用g ++而不是icpc,我不会收到此警告.

我无法理解这意味着什么,以及导致此警告产生的原因.代码按预期运行,但是我想不想发生什么.

c++ exception ld icc

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

阅读写作fortran使用不同的编译器直接访问未格式化的文件

我在一个程序中有一节写入直接访问二进制文件,如下所示:

open (53, file=filename, form='unformatted', status='unknown',
& access='direct',action='write',recl=320*385*8)
write (53,rec=1) ulat
write (53,rec=2) ulng
close(53)
Run Code Online (Sandbox Code Playgroud)

该程序使用ifort编译.但是,如果我从使用gfortran编译的其他程序中读取数据文件,则无法正确重建数据.如果读取数据的程序也在ifort中编译,那么我可以正确地重建数据.这是读取数据文件的代码:

OPEN(53, FILE=fname, form="unformatted", status="unknown", access="direct", action="read", recl=320*385*8)
READ(53,REC=2) DAT
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会这样?我可以用两个编译器正确读取第一条记录,这是我混合编译器时无法正确重建的第二条记录.

fortran binaryfiles gfortran intel-fortran

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

NSUserNotificationCenter.defaultUserNotificationCenter()在python中返回None

我想通过python连接到Mountain Lion通知中心.我已经安装了pyobjc,并按照这里这里的说明操作.另请参阅:使用PyObjC与Mountain Lion的通知中心合作

这是我的代码:

import Foundation, objc
import AppKit
import sys

NSUserNotification = objc.lookUpClass('NSUserNotification')
NSUserNotificationCenter = objc.lookUpClass('NSUserNotificationCenter')

def notify(title, subtitle, info_text, delay=0, sound=False, userInfo={}):
    """ Python method to show a desktop notification on Mountain Lion. Where:
        title: Title of notification
        subtitle: Subtitle of notification
        info_text: Informative text of notification
        delay: Delay (in seconds) before showing the notification
        sound: Play the default notification sound
        userInfo: a dictionary that can be used to handle clicks in your …
Run Code Online (Sandbox Code Playgroud)

python pyobjc nsnotificationcenter osx-mountain-lion nsusernotificationcenter

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

Shell提示符基于文件系统中的位置

我必须在根文件系统下的三个主目录中工作 - home/username,project和scratch.我希望我的shell提示符显示我所在的这些顶级目录.

这是我想要做的:

top_level_dir ()
{
    if [[ "${PWD}" == *home* ]]
    then
        echo "home";
    elif [[ "${PWD}" == *scratch* ]]
    then
        echo "scratch";
    elif [[ "${PWD}" == *project* ]]
    then
        echo "project";
    fi

}
Run Code Online (Sandbox Code Playgroud)

然后,我导出PS1为:

export PS1='$(top_level_dir) : '
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不符合我的要求.home :当我在我的主目录中时,我得到了提示,但如果我切换到临时或项目,则提示不会改变.我不太了解bash脚本,所以我很感激任何帮助来纠正我的代码.

unix linux bash shell command-prompt

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

隐藏ipython笔记本提示

如何隐藏ipython笔记本中输入单元格左侧的"In [*]:"提示,如下所示? 在此输入图像描述

编辑:在ipython notebook nbconvert中提出的问题- 如何删除单元格输出左上角的红色'out [N]'文本?与这里提出的问题不一样.在这里,我想隐藏浏览器本身的单元格号,而不是隐藏在nbconvert的输出中.然而,一个反应在这个问题的确解决了我的问题.

css python ipython ipython-notebook

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

使用`seq`的Bash通配符模式

我正在尝试以下命令:

ls myfile.h1.{`seq -s ',' 3501 3511`}*
Run Code Online (Sandbox Code Playgroud)

ls提出错误:

ls: cannot access myfile.h1.{3501,3502,3503,3504,3505,3506,3507,3508,3509,3510,3511}*: No such file or directory
Run Code Online (Sandbox Code Playgroud)

似乎ls认为整行是文件名而不是通配符模式.但是,如果我只是ls myfile.h1.{3501,3502,3503,3504,3505,3506,3507,3508,3509,3510,3511}*在终端中复制该命令,我会按预期获得列表.

为什么要在完整的工作中键入命令,而不是使用seq

bash shell

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

在matplotlib colormap中选择起始颜色

我有如下图所示的图.目前,该图的colorscheme使用了colormap的整个范围(mpl.cm.Paired).我想做的,并且一直无法弄清楚,是如何限制matplotlib仅使用色图的一个子集.在这种情况下,我试图让起始颜色变成深蓝色.这是我的代码的绘图部分:

Figure = plt.figure(figsize=(22,10))
Map    = Basemap(projection='robin', lon_0=0, resolution='l')
x, y   = Map(LONS, LATS)
levels = np.arange(0, 4100, 100)
fcp    = Map.contourf(x, y, data, levels, interpolation="bicubic", cmap=mpl.cm.Paired)

cb = Map.colorbar(fcp, "bottom", size="5%", pad='5%', extendrect=False)
cb.ax.tick_params(labelsize=18)
cb.solids.set_edgecolor("face")
cb.set_label("metres",fontsize=18)
cb.ax.set_aspect(0.047)

Map.drawcoastlines(linewidth=1)
Map.drawmapboundary(linewidth=1)
Map.drawmeridians([-150,-100,-50,0,50,100, 150],labels=[1,1,1,0],fontsize=18)
Map.drawparallels([-60,-30,0,30,60],labels=[1,1,1,1],fontsize=18)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python matplotlib matplotlib-basemap

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

比较两对整数的最有效方法

一个类包含两个整数; 这个类有两个实例.我想比较它们以确保两个实例包含相同的两个数字(它们的顺序无关紧要).

我可以做这个:

bool operator==(const Edge &e, const Edge &f) {
    return ((e.p1 == f.p1) || (e.p1 == f.p2)) && ((e.p2 == f.p1) || (e.p2 == f.p2));
}
Run Code Online (Sandbox Code Playgroud)

这是最好的方式吗?会有很多这样的比较,所以我想确保我做出最有效的选择.顺便说一句,运营商将主要由std::unordered_set班级使用 - 如果这些信息很重要.

c++ c++11

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