小编OhM*_*osh的帖子

virtualenv名称不在zsh提示符中显示

最近,我尝试了我的zsh,一切看起来都不错,直到我尝试virtualevn和virtualenvwrapper.当我激活virtualenv(例如测试)时,在正常的bash上,我会看到virtualenv名称,如:

(test)abc@abc:
Run Code Online (Sandbox Code Playgroud)

但是当我切换到zsh时,我看不到virtualenv的名字.尽管如此,我还是在我的zsh的插件中添加了virtualenv和virtualenvwrapper.我还检查了我的virtualenv的激活文件,它包含:

f [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then        
    _OLD_VIRTUAL_PS1="$PS1"
    if [ "x" != x ] ; then
        PS1="$PS1"
    else
        PS1="(`basename \"$VIRTUAL_ENV\"`) $PS1"
    fi
        export PS1
fi
Run Code Online (Sandbox Code Playgroud)

是因为比较["x"!= x]返回true?

更新: 我试图在激活文件中回显$ PS1,并得到了这个:

(test) %{$fg[magenta]%}%n%{$reset_color%}%{$fg[cyan]%}@%{$reset_color%}%{$fg[yellow]%}%m%{$reset_color%}%{$fg[red]%}:%{$reset_color%}%{$fg[cyan]%}%0~%{$reset_color%}%{$fg[red]%}|%{$reset_color%}%{$fg[cyan]%}?%{$reset_color%}
Run Code Online (Sandbox Code Playgroud)

似乎$ PS1是正确的,但当我在终端回应$ PS1时,(测试)消失了.似乎$ PS1被其他东西覆盖!

bash zsh oh-my-zsh

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

Python:&=运算符

当我尝试使用&=和/和两个使用和|=运算符时,我得到了一些奇怪的结果.

s1 = {1,2,3}
s2 = {2,3,4}
tmp = s1
tmp &= s2 
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,tmp将是{2,3},但我不知道为什么s1还将其值改为{2,3}.

但是,如果我这样做:

tmp = tmp & s2
Run Code Online (Sandbox Code Playgroud)

然后,s1将保持不变!谁能解释一下&=运营商下面会发生什么?

python set python-2.7 python-3.x

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

字符串拆分使用默认分隔符与用户定义的分隔符

我尝试了一个字符串拆分的简单示例,但得到一些意想不到的行为.以下是示例代码:

def split_string(source,splitlist):
    for delim in splitlist:
        source = source.replace(delim, ' ')
    return source.split(' ')

out = split_string("This is a test-of the,string separation-code!", " ,!-")
print out
>>> ['This', 'is', 'a', 'test', 'of', 'the', 'string', 'separation', 'code', '']
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,当我使用space作为split()函数的分隔符参数时,我在列表的末尾有一个额外的空字符串.但是,如果我没有传入split()函数的任何参数,我在输出列表的末尾没有空字符串.

从我在python docs中读到的内容,他们说split()的默认参数是space.那么,为什么当我明确地传入''作为分隔符时,它会在输出列表的末尾创建一个空字符串?

python split

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

C++ - 在线程之间传递数据

我有一个线程池由4个线程组成:t1,t2,t3和t4.它们同时运行,但t3和t4的输入取决于t2的输出.我应该如何实现消息队列,以便在t2完成后,它将输出数据发送到t3和t4进行处理?我试图使用锁定机制实现消息队列,但似乎锁定非常昂贵.是否有在线程之间传递数据的无锁机制?我在visual studio 2010中使用boost :: thread.

c++ multithreading

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

响应标头中的Access-Control-Allow-Origin是否区分大小写?

我想从站点B访问站点A的内容。因此,我将站点B的Access-Control-Allow-Origin配置为通配符(*)。但是,配置后,我将获得跨域异常。然后,我尝试卷曲站点A url,并得到以下结果:

access-control-allow-headers: *
access-control-allow-origin: *
Run Code Online (Sandbox Code Playgroud)

因此,我不确定是因为关键字Access-Control-Allow-Origin是否区分大小写吗?

我试图四处搜寻,找不到任何文档指定必须是驼峰式大小写。

更新:

让我解释一下我到底发生了什么:

  1. 我有网站B(https://siteB.com),其中的iframe带有src =“ https://siteA.com ”。

  2. 在网站B上,我有一个脚本来获取该iframe的动态高度:

    function showPageDialog(url, id, title, onCloseDialog) { var iframe = $('<iframe/>', {'class': 'frame', 'src': url}).load(function(){ setTimeout(function() { $(iframe).height($(iframe).contents().height()); }, 100); }); showDialog(iframe, id, title, onCloseDialog); }

该函数在访问$(iframe).contents()时发生异常,异常详细信息如下:

Uncaught DOMException: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "https://siteB.com" from accessing a cross-origin frame.
Run Code Online (Sandbox Code Playgroud)

这是卷曲结果:

HTTP/1.1 200 OK
Server: Apache
ETag: "f8daec99fedb6b0cd0d205598167cf11:1477550373"
Last-Modified: Thu, 27 Oct 2016 06:39:33 …
Run Code Online (Sandbox Code Playgroud)

javascript html5 httpresponse httprequest http-headers

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

C++ - 使用opencv flann查找最近邻居

我有两组点(cv :: Point2f):setA和setB.对于setA中的每个点,我想在setB中找到它的最近邻居.所以,我尝试了两种方法:

  1. 线性搜索:对于setA中的每个点,只需扫描setB中的所有点即可找到最近的点.

  2. 使用opencv kd-tree:

    _首先,我使用opencv flann为setB构建了一个kd-tree:

    cv::flann::KDTreeIndexParams indexParams;
    cv::flann::Index kdTree(cv::Mat(setB).reshape(1), indexParams);
    
    Run Code Online (Sandbox Code Playgroud)

    _然后,对于setA中的每个点,我都会查询以找到最近的邻居:

    kdTree.knnSearch(point_in_setA, indices, dists, maxPoints);
    
    Run Code Online (Sandbox Code Playgroud)

注意:我将maxPoints设置为1,因为我只需要最近的一个.

我做了一些研究,并为每个案例提出了一些时间复杂性:

  1. 线性搜索:O(M*N)

  2. Kd-Tree:NlogN + MlogN =>构建kd-tree的第一个术语,第二个术语用于查询

其中M是setA中的点数,N是setB的点数.并且范围N:100~1000,范围M:10000~100000.

因此,kd-tree应该比线性搜索方法运行得快得多.但是,当我在笔记本电脑上运行真正的测试时,结果是kd-tree方法比线性搜索慢(0.02~0.03s vs 0.4~0.5s).

当我进行性能分析时,我在knnSearch()函数中得到了热点,它占用了20.3%的CPU时间,而线性搜索则为7.9%.

嗯,我读了一些在线文章,他们说要查询kd-tree它通常需要logN.但我不确定opencv如何实现它.

谁知道这里有什么问题?是否有任何参数我应该在kd-tree中调整,或者我在代码或计算中的某处出错?

c++ algorithm opencv

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

设置 Mailchimp 活动内容 html 不起作用

我尝试使用 mailchimp api 更新我的活动 html 内容:

/campaigns/{campaign_id}/content
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到有关此 API 的更多信息:https : //developer.mailchimp.com/documentation/mailchimp/reference/campaigns/content/#

在发送活动之前,我尝试获取活动内容 html,对其进行修改,然后使用上述 api 设置活动内容 html。我只是简单地使用 BeautifulSoup 将一个新标签附加到内容正文:

content.body.append(BeautifulSoup('<p>Mailchimp is freaking shittttt</p>'))
Run Code Online (Sandbox Code Playgroud)

然后,发生了一些有趣的事情,我创建的第一个广告系列效果很好,添加的标签出现在我的电子邮件中。但是,然后子序列活动不再起作用,添加的标签没有出现。

我在我的 mailchimp 活动网站上观察到一些奇怪的东西,即使我设置了活动 html 内容,只有纯文本电子邮件(HTML 源仍然是旧版本)对于有效和无效的活动都发生了变化。 纯文本电子邮件 HTML 预览

以前有人遇到过这个问题吗?

mailchimp mailchimp-api-v3.0

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