小编Evg*_*ich的帖子

Conda glibc 依赖冲突

当我尝试构建 conda 包时出现一个奇怪的错误。

$ conda-build pkg2

....
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed   
....
The following specifications were found to be incompatible with your system:

  - feature:/linux-64::__glibc==2.17=0
  - feature:|@/linux-64::__glibc==2.17=0
  - pkg1 -> __glibc[version='>=2.17,<3.0.a0']

Your installed version is: 2.17
Run Code Online (Sandbox Code Playgroud)

在我看来,它似乎glibc 2.17满足所有三个要求,但 conda 认为存在冲突。

澄清pkg2一下,取决于我在本地构建的另一个包,pkg1. pkg1是一个带有 python 接口的 C++ 库,它依赖于libfftw. 我libfftw在 conda 上找不到,所以必须通过 yum 在构建主机上安装它,它运行 CentOS7 glibc 2.17,因此依赖。

pkg1 …

python glibc build conda conda-build

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

使用python deepcopy时的AttributeError

我有一个具有一类__eq____hash__重写,使其对象作为字典键.每个对象还带有一个字典,由同一类的其他对象键入.AttributeError当我尝试deepcopy整个结构时,我感到很奇怪.我在OsX上使用Python 3.6.0.

Python文档看起来好像deepcopy使用memo字典来缓存它已经复制的对象,所以嵌套结构应该不是问题.那我做错了什么?我应该编写自己的__deepcopy__方法来解决这个问题吗?怎么样?

from copy import deepcopy


class Node:

    def __init__(self, p_id):
        self.id = p_id
        self.edge_dict = {}
        self.degree = 0

    def __eq__(self, other):
        return self.id == other.id

    def __hash__(self):
        return hash(self.id)

    def add_edge(self, p_node, p_data):
        if p_node not in self.edge_dict:
            self.edge_dict[p_node] = p_data
            self.degree += 1
            return True
        else:
            return False

if __name__ == '__main__':
    node1 = Node(1)
    node2 = Node(2)
    node1.add_edge(node2, "1->2") …
Run Code Online (Sandbox Code Playgroud)

python deep-copy cyclic-reference

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

标签 统计

python ×2

build ×1

conda ×1

conda-build ×1

cyclic-reference ×1

deep-copy ×1

glibc ×1