小编Sad*_*dik的帖子

pydot和graphviz错误:无法导入dot_parser,无法加载点文件

当我用pydot运行一个非常简单的代码时

import pydot
graph = pydot.Dot(graph_type='graph')

for i in range(3):

  edge = pydot.Edge("king", "lord%d" % i)
  graph.add_edge(edge)

vassal_num = 0
for i in range(3):
  for j in range(2):
    edge = pydot.Edge("lord%d" % i, "vassal%d" % vassal_num)
    graph.add_edge(edge)
    vassal_num += 1

graph.write_png('example1_graph.png')
Run Code Online (Sandbox Code Playgroud)

它打印出错误信息:

Couldn't import dot_parser, loading of dot files will not be possible.
Run Code Online (Sandbox Code Playgroud)

我正在使用python 2.7.3

python graphviz python-2.7 pydot

107
推荐指数
6
解决办法
9万
查看次数

可以访问英语词典的Python模块,包括单词的定义

我正在寻找一个python模块,帮助我从英语词典中获取一个单词的定义.

当然enchant,这有助于我检查这个词是否存在于英语中,但它没有提供它们的定义(至少我没有在文档中看到类似的内容)

还有WordNet,可以通过NLTK访问.它有定义甚至是样本句子,但WordNet不包含所有英文单词.常见的词语如"如何","我","你","应该","可能"......不是WordNet的一部分.

是否有任何python模块可以访问包含单词定义的完整英语词典?

python dictionary nlp module nltk

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

错误的密码短语3次:git不再要求密码短语了

我想推送一个远程git存储库.我输了三次错误的密码短语.我创建了一个新的ssh密钥,并在存储库服务器上注册了新的公钥.但是ssh代理不会提示输入密码.它一直在告诉我:

权限被拒绝(publickey).致命:无法从远程存储库读取.

请确保您具有正确的访问权限并且存储库存在.

如何在ubuntu下解决这个问题?

编辑

正如有人建议的那样,我试过了 ssh-add

sadik@sadix:~$ cd .ssh/
sadik@sadix:~/.ssh$ ls
config  github_rsa  github_rsa.pub  id_rsa  id_rsa.pub  keys.zip  known_hosts
sadik@sadix:~/.ssh$ ssh-add 
Enter passphrase for /home/sadik/.ssh/id_rsa: 
Identity added: /home/sadik/.ssh/id_rsa (/home/sadik/.ssh/id_rsa)
sadik@sadix:~/.ssh$ 
sadik@sadix:~/.ssh$ cd
sadik@sadix:~$ cd some/git-repo/
sadik@sadix:~/some/git-repo/$ git push -u bitbucket master
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)

我应该补充说,这个git存储库已经从github克隆(不属于我).我想在bitbucket上的私有存储库上推送它.我不知道这是否会导致权限问题,但我的第一个问题是ssh没有提示密码短语.即使重启或注销后也是如此.

编辑

正如Jakuje亲切地建议我输入命令GIT_SSH_COMMAND="ssh -vvv" git push -u bitbucket master来获取客户端日志.这是输出的结束:

debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup …
Run Code Online (Sandbox Code Playgroud)

git ssh ssh-agent

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

_pickle.UnpicklingError:找不到MARK

我得到的异常就像在使用一个空集的成员参与者的EventFrame的pickling(一个列表)对象时引发的UnicodeDecodeError.

class EventFrame:
    """Frame for an event"""
    def __init__(self, id=0):
        ...
        self.participants = set()
        ...
Run Code Online (Sandbox Code Playgroud)

当它不是空的时候,没有问题,所以我先把参与者设置成某种东西然后腌制它.但是在运行时期间,可能会再次清空参与者.

所以我尝试在这种情况下手动删除对象.之后,我再次使用泡菜将其倾倒.

if len(frame.participants) == 0:
    frame_list.remove(frame)
Run Code Online (Sandbox Code Playgroud)

这似乎不是一个好的选择,因为这个UnpicklingError被引发:

....
frame_list.append (pickle.load(f))
_pickle.UnpicklingError: could not find MARK
Run Code Online (Sandbox Code Playgroud)

我不知道这意味着什么,我找不到任何有用的东西.

请注意,加载pickle文件时会引发此错误.

这是我挑选和解开的方式:

f = open("myfile", "r+b")
frame_list = []
while 1:
    try:
        frame_list.append (pickle.load(f))
        frame_list = sum(frame_list, [])
    except EOFError:
        break
f.close()
Run Code Online (Sandbox Code Playgroud)

和倾销:

f = open("myfile", "r+b")
pickle.dump(frame_list, f)
f.close()   
Run Code Online (Sandbox Code Playgroud)

python pickle

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

QCroreApplication QApplication与WMI

我在MSDN网站上找到了一些WMI C++应用程序示例.

我已经尝试了以下链接的代码

http://msdn.microsoft.com/en-us/library/aa390423%28v=VS.85%29.aspx

当我复制并运行应用程序作为win32控制台应用程序时它运作良好.

与Qt应用程序相同的代码,

当我使用QApplication anApplication(argc,argv); 在我的代码中,它无法正常工作

但是,如果我使用QCroreApplication anApplication(argc,argv); 这是工作

向我显示错误,如"当我将QCroreApplication更改为QApplication时,下面的源代码不起作用,并给我错误,如"无法初始化COM库.错误代码= 0x80010106"

任何建议或帮助

#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <comdef.h>
#include <Wbemidl.h>

# pragma comment(lib, "wbemuuid.lib")

// Qt Includes
#include <QtCore>
#include <QtGui>


 //----------------------------------------------------------------------------

// Main Function
int main( int a_argc, char *a_argv[] )
//************************************
{
    // initialize the application
    QApplication anapplication( a_argc, a_argv );

    HRESULT hres;

    // Step 1: --------------------------------------------------
    // Initialize COM. ------------------------------------------

    hres =  CoInitializeEx(0, COINIT_MULTITHREADED); 
    if (FAILED(hres))
    {
        cout << "Failed to …
Run Code Online (Sandbox Code Playgroud)

c++ wmi qt

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

迭代时从STL容器中查找并擦除元素

迭代multimap我想要删除元素,但不仅仅是迭代器指向的元素.

for (vector<int> myVec : myVectors)
{
    auto range = myMultiMap.equal_range(myVector);
    for (auto it = range.first; it != range.second; ++it)
    {
        // secondPair is another element of this multimap
        auto secondPair = getSecondPair(it, myMultiMap);
        if (condition)
        {
            it = myMultiMap.erase(it);
            auto finder = myMultiMap.find(secondPair);
            // how can I delete secondPair?
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

也许这是xy问题,所以让我解释一下我需要的东西:我要做的是缩短一组vector<int>.MyPair每个元素都有相关的类型元素.这些相关元素存储在无序多图中.

typedef unordered_multimap < vector<int>, MyPair, SomeHash > MyMultiMap;
Run Code Online (Sandbox Code Playgroud)

set<vector <int> >如果已成功处理多图中的所有关联对,则可以删除元素.它对大多数人来说都不会成功,所以大多数人都应该留在这里.我的想法是从multimap中删除元素,如果multimap中没有关联元素,则意味着可以从集合中删除元素.这里我再次遇到问题,即在迭代时从集合中删除元素.同样,不仅是迭代器指向的那个.

c++ c++11

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

是否可以在 vhdl 中使用泛型类型?

VHDL 中有没有办法拥有泛型类型?因此,例如我想调用一个过程,但我不确定我想提供的信号类型作为参数,是否可以将参数声明为泛型?就像在 C++ 中一样,您将使用模板。

procedure eq_checker(name : string; sig : ANYTHING); should : ANYTHING; at : time) is
  if (at = now) then
    if sig = should then
      report "has same value" severity note;
    else
      report "has not same value" severity note;
    end if;
  end if;
end checker;
Run Code Online (Sandbox Code Playgroud)

至少应该可以使用不同的信号类型作为“sig”。

generics templates procedure type-conversion vhdl

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

如何在Web浏览器中运行我的python脚本并处理结果?

我有一个简短的python脚本,它接受一个文本并用它做一些事情.例如,它有一个函数可以对文本中的单词进行计数并返回数字.

如何在django中运行此脚本?我想从视图(文本字段或其他东西)中获取该文本,并将结果返回给视图.

我想只使用django为脚本提供一个web界面.它只适合我,也许适合少数人,不适合大量观众.没有部署.

编辑:当我第一次认为解决方案是"Django"时,我明确地要求它.由于我对WSGI的无知,这当然是一个错误.不幸的是没有人告诉我这个错误.

python django web-applications view

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

使用 ctest 进行每个测试是否需要单独的文件?

关于cmake和ctest,我有很多不明白的地方。我实际上找不到好的教程或可以很好地解释 ctest 的东西。

我尝试为我的代码编写一些测试。我将测试放在不同的函数中,这些函数都是从 main.cpp 调用的,如下所示:

int main()
{
    test1();
    test2();
    test3();
    ...
    exit(0);
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个 CMakeLists.txt 来创建目标测试

set (TESTS
        main.cpp
)
add_executable (tests ${TESTS})
target_link_libraries (tests ...)

enable_testing()
add_test(my-test tests)
Run Code Online (Sandbox Code Playgroud)

现在我可以调用ctest run

$ ctest run
Test project /.../tests
    Start 1: my-test
1/1 Test #1: my-test .........................   Passed    0.01 sec

100% tests passed, 0 tests failed out of 1

Total Test time (real) =   0.01 sec
Run Code Online (Sandbox Code Playgroud)

但这只给了我一个测试用例,尽管在内部我有多个测试用例,每个测试用例都在一个单独的函数中。我可以将函数提取到单独的文件中,但这样我就会有数百个文件。如何避免每个测试都有单独的文件?

我正在寻找这样的东西。

add_test( test1 tests::test1() )
add_test( test2 tests::test2() )
Run Code Online (Sandbox Code Playgroud)

我完全意识到这是错误的、幼稚的等等。但我希望你能了解我的问题。

c++ cmake ctest

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

Java ProcessBuilder:如何抑制输出而不是重定向输出

我正在使用ProcessBuilder执行命令并重定向输出。我现在想补充一下根本没有输出的可能性。

当然,我可以重定向到文件中,但这会在用户系统上留下不必要的文件。

我正在寻找一个解决方案

  • 适用于所有平台,包括Windows(例如,不重定向到/ dev / null)
  • 不会滥用try-catch(例如重定向到null并忽略异常)

我能找到的唯一方法是:

ProcessBuilder processBuilder = new ProcessBuilder(command);
if (suppressOutput) {
        processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
}
Run Code Online (Sandbox Code Playgroud)

但这会打印到底层shell,这实际上不是“没有输出”。

这是我对processBuilder的使用,其输出不受影响:

ProcessBuilder processBuilder = new ProcessBuilder(command);
processBuilder.directory(new File(workingdir));
processBuilder.redirectErrorStream(true);
Process process = processBuilder.start();

while (process.isAlive()) {
    try {
        Thread.sleep(100);
    } catch (InterruptedException e) { }
    // check for termination request
    if (terminationRequest()) {
        process.destroy();
        return -1;
    }
}
return process.exitValue();
Run Code Online (Sandbox Code Playgroud)

java java-8

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