Orange Forum • View topic - Can't run orange-canvas --missing symbols

Can't run orange-canvas --missing symbols

A place to ask questions about methods in Orange and how they are used and other general support.

Can't run orange-canvas --missing symbols

Postby joelyoung » Thu Mar 21, 2013 1:09

on fedora 18, I get a clean build with both Orange-2.6 and today's snapshot 2.6.1. However, at run time I get a missing symbol:

Code: Select all
Orange-2.6]$ orange-canvas
/usr/lib64/python2.7/site-packages/Orange/__init__.py:69: UserWarning: Some features will be disabled due to failing modules
Importing 'data' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("data")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:70: UserWarning: Importing 'data.io' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("data.io")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:71: UserWarning: Importing 'data.sample' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("data.sample")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:72: UserWarning: Importing 'data.outliers' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("data.outliers")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:73: UserWarning: Importing 'data.preprocess' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("data.preprocess")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:74: UserWarning: Importing 'data.preprocess.scaling' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("data.preprocess.scaling")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:75: UserWarning: Importing 'data.utils' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("data.utils")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:76: UserWarning: Importing 'data.discretization' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("data.discretization")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:77: UserWarning: Importing 'data.continuization' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("data.continuization")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:78: UserWarning: Importing 'data.filter' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("data.filter")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:79: UserWarning: Importing 'data.imputation' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("data.imputation")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:81: UserWarning: Importing 'feature' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("feature")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:82: UserWarning: Importing 'feature.construction' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("feature.construction")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:83: UserWarning: Importing 'feature.construction.functionDecomposition' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("feature.construction.functionDecomposition")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:84: UserWarning: Importing 'feature.construction.univariate' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("feature.construction.univariate")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:85: UserWarning: Importing 'feature.discretization' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("feature.discretization")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:86: UserWarning: Importing 'feature.imputation' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("feature.imputation")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:87: UserWarning: Importing 'feature.scoring' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("feature.scoring")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:88: UserWarning: Importing 'feature.selection' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("feature.selection")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:92: UserWarning: Importing 'statistics' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("statistics")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:93: UserWarning: Importing 'statistics.estimate' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("statistics.estimate")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:94: UserWarning: Importing 'statistics.contingency' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("statistics.contingency")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:95: UserWarning: Importing 'statistics.distribution' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("statistics.distribution")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:96: UserWarning: Importing 'statistics.basic' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("statistics.basic")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:97: UserWarning: Importing 'statistics.evd' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("statistics.evd")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:99: UserWarning: Importing 'classification' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("classification")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:100: UserWarning: Importing 'classification.tree' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("classification.tree")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:102: UserWarning: Importing 'classification.rules' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("classification.rules")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:104: UserWarning: Importing 'classification.lookup' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("classification.lookup")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:105: UserWarning: Importing 'classification.bayes' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("classification.bayes")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:106: UserWarning: Importing 'classification.svm' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("classification.svm")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:107: UserWarning: Importing 'classification.logreg' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("classification.logreg")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:108: UserWarning: Importing 'classification.knn' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("classification.knn")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:109: UserWarning: Importing 'classification.majority' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("classification.majority")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:111: UserWarning: Importing 'tuning' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("tuning")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:114: UserWarning: Importing 'projection.linear' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("projection.linear")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:115: UserWarning: Importing 'projection.mds' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("projection.mds")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:119: UserWarning: Importing 'ensemble.bagging' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("ensemble.bagging")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:120: UserWarning: Importing 'ensemble.boosting' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("ensemble.boosting")
/usr/lib64/python2.7/site-packages/Orange/__init__.py:121: UserWarning: Importing 'ensemble.forest' failed: /usr/lib64/python2.7/site-packages/Orange/orangeom.so: undefined symbol: _ZTI7TOrange
  _import("ensemble.forest")
Traceback (most recent call last):
  File "/usr/bin/orange-canvas", line 4, in <module>
    import Orange
  File "/usr/lib64/python2.7/site-packages/Orange/__init__.py", line 122, in <module>
    _import("ensemble.stacking")
  File "/usr/lib64/python2.7/site-packages/Orange/__init__.py", line 31, in _import
    __import__(name, globals(), locals(), [], -1)
  File "/usr/lib64/python2.7/site-packages/Orange/ensemble/stacking.py", line 3, in <module>
    class StackedClassificationLearner(Orange.classification.Learner):
AttributeError: 'module' object has no attribute 'classification'


using nm, I can see that the missing symbol is defined in orange.so and undefined in orangeom.so

Any advice?

Thanks!

Re: Can't run orange-canvas --missing symbols

Postby joelyoung » Thu Mar 21, 2013 16:43

I figured out part of the problem. I had the orange package for making installable Microsoft Cabinet Files:

Code: Select all
Name        : orange
Arch        : x86_64
Version     : 0.4
Release     : 4.fc15
Size        : 25 k
Repo        : fedora
Summary     : Squeeze out installable Microsoft cabinet files
URL         : http://synce.sourceforge.net/
License     : MIT
Description : Orange is a tool and library for squeezing out juicy installable Microsoft
            : Cabinet Files from self-extracting installers for Microsoft Windows and some
            : other installer file formats


This package include /usr/lib64/liborange.so. When importing Orange from python, this library was being checked for symbols instead of the one in /usr/lib64/python2.7/site-packages/Orange

Any suggestions on what needs to be done so python doesn't try /usr/lib64 first?

Joel

Re: Can't run orange-canvas --missing symbols

Postby Ales » Thu Mar 21, 2013 17:23

When 'orangeom.so' is build it's runtime path (RPATH) is set to look in the same directory (it is linked with -R$ORIGIN flag). However a quick glace at the wiki rpath page indicates it can be overriden with '--enable-new-dtags'.

Can you check if orange was compiled (linked) with this flag (it might get put there by distutils depending on how python itself was compiled).

Re: Can't run orange-canvas --missing symbols

Postby joelyoung » Thu Mar 21, 2013 18:19

This is the link command that was used to build orange:

Code: Select all
g++ -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/source/orange/functions.o build/temp.linux-x86_64-2.7/source/orange/pq.o build/temp.linux-x86_64-2.7/source/orange/bayes.o build/temp.linux-x86_64-2.7/source/orange/random.o build/temp.linux-x86_64-2.7/source/orange/lib_io.o build/temp.linux-x86_64-2.7/source/orange/imputation.o build/temp.linux-x86_64-2.7/source/orange/calibrate.o build/temp.linux-x86_64-2.7/source/orange/readdata.o build/temp.linux-x86_64-2.7/source/orange/tdidt_split.o build/temp.linux-x86_64-2.7/source/orange/lib_vectors.o build/temp.linux-x86_64-2.7/source/orange/lookup.o build/temp.linux-x86_64-2.7/source/orange/tdidt_simple.o build/temp.linux-x86_64-2.7/source/orange/hclust.o build/temp.linux-x86_64-2.7/source/orange/pythonvars.o build/temp.linux-x86_64-2.7/source/orange/root.o build/temp.linux-x86_64-2.7/source/orange/lib_learner.o build/temp.linux-x86_64-2.7/source/orange/numeric_interface.o build/temp.linux-x86_64-2.7/source/orange/graph.o build/temp.linux-x86_64-2.7/source/orange/examplegen.o build/temp.linux-x86_64-2.7/source/orange/costwrapper.o build/temp.linux-x86_64-2.7/source/orange/multi_learner.o build/temp.linux-x86_64-2.7/source/orange/survival.o build/temp.linux-x86_64-2.7/source/orange/gslconversions.o build/temp.linux-x86_64-2.7/source/orange/estimateprob.o build/temp.linux-x86_64-2.7/source/orange/cls_example.o build/temp.linux-x86_64-2.7/source/orange/stringvars.o build/temp.linux-x86_64-2.7/source/orange/distance.o build/temp.linux-x86_64-2.7/source/orange/orvector.o build/temp.linux-x86_64-2.7/source/orange/getarg.o build/temp.linux-x86_64-2.7/source/orange/lib_preprocess.o build/temp.linux-x86_64-2.7/source/orange/distance_dtw.o build/temp.linux-x86_64-2.7/source/orange/measures.o build/temp.linux-x86_64-2.7/source/orange/pnn.o build/temp.linux-x86_64-2.7/source/orange/transval.o build/temp.linux-x86_64-2.7/source/orange/tabdelim.o build/temp.linux-x86_64-2.7/source/orange/cls_value.o build/temp.linux-x86_64-2.7/source/orange/rule_conditions.o build/temp.linux-x86_64-2.7/source/orange/majority.o build/temp.linux-x86_64-2.7/source/orange/spec_gen.o build/temp.linux-x86_64-2.7/source/orange/c4.5.o build/temp.linux-x86_64-2.7/source/orange/domain.o build/temp.linux-x86_64-2.7/source/orange/basstat.o build/temp.linux-x86_64-2.7/source/orange/learn.o build/temp.linux-x86_64-2.7/source/orange/redundancy.o build/temp.linux-x86_64-2.7/source/orange/spec_contingency.o build/temp.linux-x86_64-2.7/source/orange/symmatrix.o build/temp.linux-x86_64-2.7/source/orange/multi_classifier.o build/temp.linux-x86_64-2.7/source/orange/meta.o build/temp.linux-x86_64-2.7/source/orange/vars.o build/temp.linux-x86_64-2.7/source/orange/clas_gen.o build/temp.linux-x86_64-2.7/source/orange/classifier.o build/temp.linux-x86_64-2.7/source/orange/errors.o build/temp.linux-x86_64-2.7/source/orange/rconversions.o build/temp.linux-x86_64-2.7/source/orange/examples.o build/temp.linux-x86_64-2.7/source/orange/lib_kernel.o build/temp.linux-x86_64-2.7/source/orange/dist_clustering.o build/temp.linux-x86_64-2.7/source/orange/exampleclustering.o build/temp.linux-x86_64-2.7/source/orange/basket.o build/temp.linux-x86_64-2.7/source/orange/callback.o build/temp.linux-x86_64-2.7/source/orange/earth.o build/temp.linux-x86_64-2.7/source/orange/boolcnt.o build/temp.linux-x86_64-2.7/source/orange/nearest.o build/temp.linux-x86_64-2.7/source/orange/cls_misc.o build/temp.linux-x86_64-2.7/source/orange/rulelearner.o build/temp.linux-x86_64-2.7/source/orange/tdidt_clustering.o build/temp.linux-x86_64-2.7/source/orange/values.o build/temp.linux-x86_64-2.7/source/orange/libsvm_interface.o build/temp.linux-x86_64-2.7/source/orange/filter.o build/temp.linux-x86_64-2.7/source/orange/minimal_complexity.o build/temp.linux-x86_64-2.7/source/orange/classfromvar.o build/temp.linux-x86_64-2.7/source/orange/logfit.o build/temp.linux-x86_64-2.7/source/orange/c45inter.o build/temp.linux-x86_64-2.7/source/orange/transdomain.o build/temp.linux-x86_64-2.7/source/orange/preprocessors.o build/temp.linux-x86_64-2.7/source/orange/table.o build/temp.linux-x86_64-2.7/source/orange/distvars.o build/temp.linux-x86_64-2.7/source/orange/trindex.o build/temp.linux-x86_64-2.7/source/orange/tdidt.o build/temp.linux-x86_64-2.7/source/orange/dictproxy.o build/temp.linux-x86_64-2.7/source/orange/induce.o build/temp.linux-x86_64-2.7/source/orange/domaindepot.o build/temp.linux-x86_64-2.7/source/orange/contingency.o build/temp.linux-x86_64-2.7/source/orange/assoc_sparse.o build/temp.linux-x86_64-2.7/source/orange/garbage.o build/temp.linux-x86_64-2.7/source/orange/assoc.o build/temp.linux-x86_64-2.7/source/orange/tdidt_stop.o build/temp.linux-x86_64-2.7/source/orange/filegen.o build/temp.linux-x86_64-2.7/source/orange/cartesian.o build/temp.linux-x86_64-2.7/source/orange/converts.o build/temp.linux-x86_64-2.7/source/orange/orange.o build/temp.linux-x86_64-2.7/source/orange/logistic.o build/temp.linux-x86_64-2.7/source/orange/lsq.o build/temp.linux-x86_64-2.7/source/orange/valuelisttemplate.o build/temp.linux-x86_64-2.7/source/orange/lib_components.o build/temp.linux-x86_64-2.7/source/orange/decomposition.o build/temp.linux-x86_64-2.7/source/orange/cost.o build/temp.linux-x86_64-2.7/source/orange/distancemap.o build/temp.linux-x86_64-2.7/source/orange/discretize.o build/temp.linux-x86_64-2.7/source/orange/cls_orange.o build/temp.linux-x86_64-2.7/source/orange/subsets.o build/temp.linux-x86_64-2.7/source/orange/excel.o build/temp.linux-x86_64-2.7/source/orange/knn.o build/temp.linux-x86_64-2.7/source/orange/liblinear_interface.o build/temp.linux-x86_64-2.7/source/orange/progress.o build/temp.linux-x86_64-2.7/source/orange/minimal_error.o build/temp.linux-x86_64-2.7/source/orange/logreg.o build/temp.linux-x86_64-2.7/source/orange/blas/daxpy.o build/temp.linux-x86_64-2.7/source/orange/blas/dscal.o build/temp.linux-x86_64-2.7/source/orange/blas/ddot.o build/temp.linux-x86_64-2.7/source/orange/blas/dnrm2.o build/temp.linux-x86_64-2.7/source/orange/blas/dcopy.o build/temp.linux-x86_64-2.7/source/orange/linpack/linpack.o build/temp.linux-x86_64-2.7/source/orange/linpack/dqrsl.o build/temp.linux-x86_64-2.7/source/orange/linpack/dtrsl.o build/temp.linux-x86_64-2.7/source/orange/linpack/dqrdc2.o build/temp.linux-x86_64-2.7/source/orange/liblinear/tron.o build/temp.linux-x86_64-2.7/source/orange/liblinear/linear.o build/temp.linux-x86_64-2.7/source/orange/libsvm/svm.o -L/usr/lib64 -Lbuild/lib.linux-x86_64-2.7/Orange -Lbuild/temp.linux-x86_64-2.7 -lstdc++ -lorange_include -lpython2.7 -o build/lib.linux-x86_64-2.7/Orange/orange.so -Wl,-R$ORIGIN

Re: Can't run orange-canvas --missing symbols

Postby Ales » Fri Mar 22, 2013 18:51

The command looks fine.

Never the less can you run
Code: Select all
readelf --dynamic path/to/orangeom.so
an post the output.

Re: Can't run orange-canvas --missing symbols

Postby joelyoung » Fri Mar 22, 2013 20:49

Code: Select all
# readelf --dynamic /usr/lib64/python2.7/site-packages/Orange/orangeom.so

Dynamic section at offset 0xa9848 contains 31 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [liborange.so]
 0x0000000000000001 (NEEDED)             Shared library: [libpython2.7.so.1.0]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN]
 0x000000000000000c (INIT)               0x1b080
 0x000000000000000d (FINI)               0x87684
 0x0000000000000019 (INIT_ARRAY)         0x2a9100
 0x000000000000001b (INIT_ARRAYSZ)       64 (bytes)
 0x000000000000001a (FINI_ARRAY)         0x2a9140
 0x000000000000001c (FINI_ARRAYSZ)       8 (bytes)
 0x000000006ffffef5 (GNU_HASH)           0x1f0
 0x0000000000000005 (STRTAB)             0x8d98
 0x0000000000000006 (SYMTAB)             0x1ca0
 0x000000000000000a (STRSZ)              33064 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000003 (PLTGOT)             0x2aa000
 0x0000000000000002 (PLTRELSZ)           17808 (bytes)
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000017 (JMPREL)             0x16af0
 0x0000000000000007 (RELA)               0x11960
 0x0000000000000008 (RELASZ)             20880 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000006ffffffe (VERNEED)            0x11830
 0x000000006fffffff (VERNEEDNUM)         5
 0x000000006ffffff0 (VERSYM)             0x10ec0
 0x000000006ffffff9 (RELACOUNT)          340
 0x0000000000000000 (NULL)               0x0


Unfortunately, I have messed around so much with my configuration, I can no longer reproduce this error. When I next build, I'll see if I can reproduce. I guess we need to table it for now.

Joel


Return to Questions & Support