小编Wan*_*ang的帖子

anaconda更新所有可能的套餐?

我试过conda search --outdated,有很多过时的软件包,例如scipy是0.17.1但是最新的是0.18.0.但是,当我这样做的时候conda update --all.它不会更新任何包.

更新1

conda update --all --alt-hint

Fetching package metadata .......
Solving package specifications: ..........

# All requested packages already installed.
# packages in environment at /home/user/opt/anaconda2:
#
Run Code Online (Sandbox Code Playgroud)

更新2

我可以单独更新这些包.我能做到conda update scipy.但为什么我不能一次更新所有这些?

python anaconda

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

如何检查QT_VERSION以包含不同的标头?

Qt4和Qt5具有不同的头文件组织.所以我需要检查qt版本以包含不同的东西,例如:

#if QT_VERSION >= 0x050000
    #include <QtMultimedia>
#endif
Run Code Online (Sandbox Code Playgroud)

然而,这似乎不起作用.QT_VERSION尚未定义.我怎么解决这个问题?

c++ qt

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

凯特文本编辑器无法处理超过1024的行?

对于编辑某些配置文件(例如mozilla),这是一个非常烦人的限制prefs.js.它通常包含比这更长的行.

linux text-editor kate

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

如何在使用QSignalMapper时保持源信号的参数?

我遇到了一个需要保留映射源信号参数的问题.到目前为止,我只找到了没有任何参数映射信号的示例.例如,clicked()信号:

signalMapper = new QSignalMapper(this);
signalMapper->setMapping(taxFileButton, QString("taxfile.txt"));

connect(taxFileButton, SIGNAL(clicked()),
     signalMapper, SLOT (map()));

connect(signalMapper, SIGNAL(mapped(QString)),
     this, SLOT(readFile(QString)));
Run Code Online (Sandbox Code Playgroud)

但是,我需要使用自己的参数映射一些信号,例如clicked(bool)信号,然后SLOT需要有两个参数doStuff(bool,QString):

connect(taxFileButton, SIGNAL(clicked(bool)),
     signalMapper, SLOT (map()));

connect(signalMapper, SIGNAL(mapped(QString)),
     this, SLOT(doStuff(bool,QString)));
Run Code Online (Sandbox Code Playgroud)

但是,它不像这样工作?有什么工作吗?

谢谢!

qt qt4 signals-slots

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

如何使 mypy 接受 List[Optional[str]] 作为 filter() 的输入参数?

我有这些行:

tags: List[Optional[str]] = [None, "adf"]
x: List[str] = list(filter(lambda x: x is not None, tags))
Run Code Online (Sandbox Code Playgroud)

mypy 出错了Argument 2 to "filter" has incompatible type "List[Optional[str]]"; expected "Iterable[str]"有没有办法输入 lambda 提示?

python-3.x

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

有没有办法确定numpy数组是否是记录/结构数组?

我找不到任何方法来确定数组是否是记录数组:

>>> import numpy as npy
>>> c0=npy.array([1,2])
>>> c=c0.view(dtype=[('x',int),('y',int)])
>>> c
array([(1, 2)], 
      dtype=[('x', '<i8'), ('y', '<i8')])
Run Code Online (Sandbox Code Playgroud)

类型总是numpy.ndarray

>>> type(c)
<type 'numpy.ndarray'>
>>> isinstance(c,npy.recarray)
False
Run Code Online (Sandbox Code Playgroud)

元素类型总是numpy.void

>>> type(c[0])
<type 'numpy.void'>
Run Code Online (Sandbox Code Playgroud)

现在我使用dtype.fields来确定它:

>>> def isRecarray(a):
    return a.dtype.fields != None

>>> isRecarray(c0)
False
>>> isRecarray(c)
True
Run Code Online (Sandbox Code Playgroud)

有没有官方的方法来确定数组是否是记录数组?

python arrays numpy

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

为什么模板参数解包有时不适用于 std::function?

我遇到了一个问题。当我使用类似的东西时,std::function<A(Fs...)>它不起作用,但std::function<A(Fs..., B)>确实起作用。这是在 Clang 8.0 下;它在 GCC 下都不起作用。这是示例:

#include <functional>
template<typename A, typename B, typename ...Fs>
void func_tmpl1(std::function<A(Fs..., B)> callable)
{
}
template<typename A, typename ...Fs>
void func_tmpl2(std::function<A(Fs...)> callable)
{
}
class Cls1{};
void func0(std::function<void(float, Cls1)> callable)
{

}

int main()
{
    std::function<void(float, Cls1)> f1 = [](float a, Cls1 b){};
    func0(f1);
    func0([](float a, Cls1 b){});
    func_tmpl1<void, Cls1, float>(f1); // fails in GCC
    func_tmpl2<void, float, Cls1>(f1);

    func_tmpl1<void, Cls1, float>( // fails in GCC
        [](float a, Cls1 b)
        { …
Run Code Online (Sandbox Code Playgroud)

c++ templates variadic-templates std-function c++17

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

如何使参数推导适用于使用基类构造函数的派生类?

当派生类使用基类构造函数时,推导似乎总是失败。但是,当基类有很多构造函数时,重新定义所有构造函数是非常笨拙的。当基类用新的构造函数快速演化时,这也是一种痛苦。旧问题是在 2 年前提出的,所以我想知道:当 c++17 和 c++2a 可用时,2020 年是否有任何解决方法?

template<typename ...As>
class base_t
{
public:
    base_t(As... args){}
};

template<typename ...As>
class A_t: public base_t<As...>
{
public:
    A_t(As... args): base_t<As...>{args...} {};
};

template<typename ...As>
class B_t: public base_t<As...>
{
    using base_t<As...>::base_t;
};

int main()
{
    base_t a{1, 2.0f};
    A_t{1, 2.0f};
    B_t{1, 2.0f}; //fails unless explicitly specialize the template
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

根据@Sam 和@Barry 的更新:

扣除指南非常有帮助。但是,对于稍微复杂一点的情况,它仍然会失控:

template <typename A>
struct D_t {
    A x;
    D_t(A x) :x{x} {}
};
template<typename A, …
Run Code Online (Sandbox Code Playgroud)

c++ c++17 c++20

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

如何在numpy布尔数组上使用cython memoryview?

我经常使用布尔数组。所以我也想在cython中这样做。但是,我只是不能使新的memoryview接口在numpy bool矩阵上工作。

这是我的测试:

def test_oldbuffer_uint8(np.ndarray[np.uint8_t, ndim=2] input):
    cdef size_t i, j
    cdef long total = 0
    cdef size_t J = input.shape[0]
    cdef size_t I = input.shape[1]
    for j in range(J):
        for i in range(I):
            total +=input[i, j]
    return total


def test_memview_uint8(np.uint8_t[:,:] input):
    cdef size_t i, j
    cdef long total = 0
    cdef size_t J = input.shape[0]
    cdef size_t I = input.shape[1]
    for j in range(J):
        for i in range(I):
            total +=input[i, j]
    return total


def test_oldbuffer_bool(np.ndarray[np.uint8_t, ndim=2, cast=True] input):
    cdef …
Run Code Online (Sandbox Code Playgroud)

python numpy cython

5
推荐指数
0
解决办法
247
查看次数

让子进程输出到文件和 stdout/stderr 的最简单接口?

我想要cmd > >(tee -a {{ out.log }}) 2> >(tee -a {{ err.log }} >&2)在 python 子进程中具有类似效果的东西,而不需要调用tee. 基本上将 stdout 写入 stdout 和 out.log 文件,并将 stderr 写入 stderr 和 err.log 文件。我知道我可以使用循环来处理它。但由于我的代码中已经有很多 Popen、subprocess.run 调用,而且我不想重写整个事情,我想知道是否有某个包提供的更简单的接口可以让我做类似的事情:

subprocess.run(["ls", "-l"], stdout=some_magic_file_object(sys.stdout, 'out.log'), stderr=some_magic_file_object(sys.stderr, 'out.log') )
Run Code Online (Sandbox Code Playgroud)

python subprocess

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