lucasb-eyer / pydensecrf

Python wrapper to Philipp Krähenbühl's dense (fully connected) CRFs with gaussian edge potentials.
MIT License
1.94k stars 416 forks source link

dont know how to solve this,already install cpython #125

Closed Deso1ate closed 1 year ago

Deso1ate commented 1 year ago

/pydensecrf-master# python3 setup.py install Compiling pydensecrf/eigen.pyx because it changed. Compiling pydensecrf/densecrf.pyx because it changed. [1/2] Cythonizing pydensecrf/densecrf.pyx /usr/local/lib/python3.8/dist-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /gly/ab/pydensecrf-master/pydensecrf/densecrf.pxd tree = Parsing.p_module(s, pxd, full_module_name)

Error compiling Cython file:

... from eigen cimport * ^

pydensecrf/densecrf.pxd:1:0: 'eigen.pxd' not found

Error compiling Cython file:

... from eigen cimport * from eigen cimport c_MatrixXf ^

pydensecrf/densecrf.pxd:2:0: 'eigen/c_MatrixXf.pxd' not found

Error compiling Cython file:

...

cdef cppclass PottsCompatibility(LabelCompatibility):
    PottsCompatibility(float) except +

cdef cppclass DiagonalCompatibility(LabelCompatibility):
    DiagonalCompatibility(const c_VectorXf&) except +
                                ^

pydensecrf/densecrf.pxd:13:36: 'c_VectorXf' is not a type identifier

Error compiling Cython file:

...

cdef cppclass DiagonalCompatibility(LabelCompatibility):
    DiagonalCompatibility(const c_VectorXf&) except +

cdef cppclass MatrixCompatibility(LabelCompatibility):
    MatrixCompatibility(const c_MatrixXf&) except +
                              ^

pydensecrf/densecrf.pxd:16:34: 'c_MatrixXf' is not a type identifier

Error compiling Cython file:

... cdef extern from "densecrf/include/unary.h": cdef cppclass UnaryEnergy: pass

cdef cppclass ConstUnaryEnergy(UnaryEnergy):
    ConstUnaryEnergy(const c_MatrixXf& unary) except +
                           ^

pydensecrf/densecrf.pxd:24:31: 'c_MatrixXf' is not a type identifier

Error compiling Cython file:

...

cdef cppclass ConstUnaryEnergy(UnaryEnergy):
    ConstUnaryEnergy(const c_MatrixXf& unary) except +

cdef cppclass LogisticUnaryEnergy(UnaryEnergy):
    LogisticUnaryEnergy(const c_MatrixXf& L, const c_MatrixXf& feature) except +
                              ^

pydensecrf/densecrf.pxd:27:34: 'c_MatrixXf' is not a type identifier

Error compiling Cython file:

...

cdef cppclass ConstUnaryEnergy(UnaryEnergy):
    ConstUnaryEnergy(const c_MatrixXf& unary) except +

cdef cppclass LogisticUnaryEnergy(UnaryEnergy):
    LogisticUnaryEnergy(const c_MatrixXf& L, const c_MatrixXf& feature) except +
                                                   ^

pydensecrf/densecrf.pxd:27:55: 'c_MatrixXf' is not a type identifier

Error compiling Cython file:

... c_DenseCRF(int N, int M) except +

    # Setup methods.
    # TODO
    #void addPairwiseEnergy(PairwisePotential *potential)
    void addPairwiseEnergy(const c_MatrixXf &features, LabelCompatibility*, KernelType, NormalizationType)
                                 ^

pydensecrf/densecrf.pxd:55:37: 'c_MatrixXf' is not a type identifier

Error compiling Cython file:

...

Setup methods.

    # TODO
    #void addPairwiseEnergy(PairwisePotential *potential)
    void addPairwiseEnergy(const c_MatrixXf &features, LabelCompatibility*, KernelType, NormalizationType)
    void setUnaryEnergy(UnaryEnergy *unary)
    void setUnaryEnergy(const c_MatrixXf &unary)
                              ^

pydensecrf/densecrf.pxd:57:34: 'c_MatrixXf' is not a type identifier

Error compiling Cython file:

...

TODO

    #void addPairwiseEnergy(PairwisePotential *potential)
    void addPairwiseEnergy(const c_MatrixXf &features, LabelCompatibility*, KernelType, NormalizationType)
    void setUnaryEnergy(UnaryEnergy *unary)
    void setUnaryEnergy(const c_MatrixXf &unary)
    void setUnaryEnergy(const c_MatrixXf &L, const c_MatrixXf &feature)
                              ^

pydensecrf/densecrf.pxd:58:34: 'c_MatrixXf' is not a type identifier

Error compiling Cython file:

...

TODO

    #void addPairwiseEnergy(PairwisePotential *potential)
    void addPairwiseEnergy(const c_MatrixXf &features, LabelCompatibility*, KernelType, NormalizationType)
    void setUnaryEnergy(UnaryEnergy *unary)
    void setUnaryEnergy(const c_MatrixXf &unary)
    void setUnaryEnergy(const c_MatrixXf &L, const c_MatrixXf &feature)
                                                   ^

pydensecrf/densecrf.pxd:58:55: 'c_MatrixXf' is not a type identifier

Error compiling Cython file:

... void setUnaryEnergy(UnaryEnergy *unary) void setUnaryEnergy(const c_MatrixXf &unary) void setUnaryEnergy(const c_MatrixXf &L, const c_MatrixXf &feature)

    # Inference methods.
    c_MatrixXf inference(int n_iterations)
    ^

pydensecrf/densecrf.pxd:61:8: 'c_MatrixXf' is not a type identifier

Error compiling Cython file:

... c_MatrixXf inference(int n_iterations)

TODO: Not enabled because it would require wrapping VectorXs (note the s)

    #c_VectorXs map(int n_iterations)

    # Step-by-step inference methods.
    c_MatrixXf startInference() const
    ^

pydensecrf/densecrf.pxd:66:8: 'c_MatrixXf' is not a type identifier

Error compiling Cython file:

...

TODO: Not enabled because it would require wrapping VectorXs (note the s)

    #c_VectorXs map(int n_iterations)

    # Step-by-step inference methods.
    c_MatrixXf startInference() const
    void stepInference(c_MatrixXf &Q, c_MatrixXf &tmp1, c_MatrixXf &tmp2) const
                       ^

pydensecrf/densecrf.pxd:67:27: 'c_MatrixXf' is not a type identifier

Error compiling Cython file:

...

TODO: Not enabled because it would require wrapping VectorXs (note the s)

    #c_VectorXs map(int n_iterations)

    # Step-by-step inference methods.
    c_MatrixXf startInference() const
    void stepInference(c_MatrixXf &Q, c_MatrixXf &tmp1, c_MatrixXf &tmp2) const
                                      ^

pydensecrf/densecrf.pxd:67:42: 'c_MatrixXf' is not a type identifier

Error compiling Cython file:

...

TODO: Not enabled because it would require wrapping VectorXs (note the s)

    #c_VectorXs map(int n_iterations)

    # Step-by-step inference methods.
    c_MatrixXf startInference() const
    void stepInference(c_MatrixXf &Q, c_MatrixXf &tmp1, c_MatrixXf &tmp2) const
                                                        ^

pydensecrf/densecrf.pxd:67:60: 'c_MatrixXf' is not a type identifier

Error compiling Cython file:

...

Step-by-step inference methods.

    c_MatrixXf startInference() const
    void stepInference(c_MatrixXf &Q, c_MatrixXf &tmp1, c_MatrixXf &tmp2) const
    #double gradient( int n_iterations, const ObjectiveFunction & objective, c_VectorXf * unary_grad, c_VectorXf * lbl_cmp_grad, c_VectorXf * kernel_grad=NULL ) const;

    double klDivergence(const c_MatrixXf &Q) const
                              ^

pydensecrf/densecrf.pxd:70:34: 'c_MatrixXf' is not a type identifier warning: pydensecrf/densecrf.pyx:20:4: Unreachable code

Error compiling Cython file:

... return eigen.MatrixXf().wrap(self._this.inference(niter))

def startInference(self):
    return eigen.MatrixXf().wrap(self._this.startInference()), eigen.MatrixXf(), eigen.MatrixXf()

def stepInference(self, MatrixXf Q, MatrixXf tmp1, MatrixXf tmp2):
                        ^

pydensecrf/densecrf.pyx:97:28: 'MatrixXf' is not a type identifier

Error compiling Cython file:

... return eigen.MatrixXf().wrap(self._this.inference(niter))

def startInference(self):
    return eigen.MatrixXf().wrap(self._this.startInference()), eigen.MatrixXf(), eigen.MatrixXf()

def stepInference(self, MatrixXf Q, MatrixXf tmp1, MatrixXf tmp2):
                                    ^

pydensecrf/densecrf.pyx:97:40: 'MatrixXf' is not a type identifier

Error compiling Cython file:

... return eigen.MatrixXf().wrap(self._this.inference(niter))

def startInference(self):
    return eigen.MatrixXf().wrap(self._this.startInference()), eigen.MatrixXf(), eigen.MatrixXf()

def stepInference(self, MatrixXf Q, MatrixXf tmp1, MatrixXf tmp2):
                                                   ^

pydensecrf/densecrf.pyx:97:55: 'MatrixXf' is not a type identifier

Error compiling Cython file:

... return eigen.MatrixXf().wrap(self._this.startInference()), eigen.MatrixXf(), eigen.MatrixXf()

def stepInference(self, MatrixXf Q, MatrixXf tmp1, MatrixXf tmp2):
    self._this.stepInference(Q.m, tmp1.m, tmp2.m)

def klDivergence(self, MatrixXf Q):
                       ^

pydensecrf/densecrf.pyx:100:27: 'MatrixXf' is not a type identifier

Error compiling Cython file:

... raise ValueError("Bad shape for pairwise energy (Need (?, {}), got {})".format(self._nvar, (features.shape[0], features.shape[1])))

    self._this.addPairwiseEnergy(eigen.c_matrixXf(features), _labelcomp(compat), kernel, normalization)

def setUnary(self, Unary u):
    self._this.setUnaryEnergy(u.move())
                             ^

pydensecrf/densecrf.pyx:78:33: ambiguous overloaded method Traceback (most recent call last): File "setup.py", line 13, in ext_modules = cythonize(['pydensecrf/eigen.pyx', 'pydensecrf/densecrf.pyx']) File "/usr/local/lib/python3.8/dist-packages/Cython/Build/Dependencies.py", line 1134, in cythonize cythonize_one(*args) File "/usr/local/lib/python3.8/dist-packages/Cython/Build/Dependencies.py", line 1301, in cythonize_one raise CompileError(None, pyx_file) Cython.Compiler.Errors.CompileError: pydensecrf/densecrf.pyx

Deso1ate commented 1 year ago

solved by following: pip3 install --force-reinstall cython==0.29.36 pip3 install --no-build-isolation git+https://github.com/lucasb-eyer/pydensecrf.git