Giter Club home page Giter Club logo

Comments (9)

loli avatar loli commented on June 4, 2024

Strange behavior. I assume you are using Python 3? Which version of medpy are you using? The current master or the PyPi version? If the latter, please try with the former. Did this solve the problem?

It seems that, despite mentioning Python3, MedPy tries to load a Python2.7 version of libboost. Do you run MedPy with Python3? And did you also install it with Python3?

from medpy.

jxchen01 avatar jxchen01 commented on June 4, 2024

from medpy.

loli avatar loli commented on June 4, 2024

I don't understand why, but your MedPy's maxflow module was linked against a 2.7 version of LibBoost Python.

Could you please post the result of:
'''
import sys
print('boost_python-py' + str(sys.version_info.major) + str(sys.version_info.minor))
'''

and locate the maxflow.so file in your MedPy code and run:

'ldd maxflow.so'

Best,
Oskar

Ps: Might be connected with #20, but that issue should be solved in the branch you are using. Anyway, you can try the current master branch instead.

from medpy.

loli avatar loli commented on June 4, 2024

And please send the actual boost python lib version that is installed on your machine. I.e., the output of 'apt-cache search libboost-python'.

from medpy.

jxchen01 avatar jxchen01 commented on June 4, 2024

I tried again with the current master branch. I still have the issue:

anaconda3/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0)

Here is more info:

"apt-cache search libboost-python" gives me

libboost-python-dev - Boost.Python Library development files (default version)
libboost-python1.58-dev - Boost.Python Library development files
libboost-python1.58.0 - Boost.Python Library

"print('boost_python-py' + str(sys.version_info.major) + str(sys.version_info.minor))" gives me:

boost_python-py36

"ldd maxflow.so" gives me

linux-vdso.so.1 => (0x00007ffe8d0ca000)
libboost_python-py27.so.1.58.0 => /usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0 (0x00007f4d2904c000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f4d28cca000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f4d28ab4000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4d286ea000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4d284cd000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4d281c4000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4d29561000)

Many thanks!

from medpy.

loli avatar loli commented on June 4, 2024

Clearly, your installation of MedPy is linked against the Python 2 version of libboost (libboost_python-py27.so.1.58.0). Why that should be the case is a mystery to me. The current master branch's setup.py used the code

if sys.platform == "darwin":
    if sys.version_info.major > 2:
        boost_python_library = 'boost_python' + str(sys.version_info.major)
    else:
        boost_python_library = 'boost_python'
else:
    boost_python_library = 'boost_python-py' + str(sys.version_info.major) + str(sys.version_info.minor)

to find the libboost fitting to your Python version. Since the last line produces boost_python-py36 on your machine, I cannot understand why it tries to call the 2.7 version instead.

Could you post the output to
python -c "import medpy; print(medpy.__file__)"

and
strings anaconda3/bin/../lib/libstdc++.so.6 | grep GLIBC

And the complete log (stdout + stderr) of a clean MedPy installation from the master branch?

Essentially, not only the wrong libboost version is linked, but also the required symbols are not found in the libstdc++, which means an older version got somehow in the way (see https://developer.ibm.com/answers/questions/184266/libstdcso6-version-glibcxx-3420-not-found.html).

I assume, that something with using anaconda environment does clash with the global Linux environment. But what it should be, I cannot tell.

I'll try my best to help you. But it's more a linker or anaconda issue, than a MedPy one. You could also try to install MedPy on your Linux machine directly, not using Anaconda.

from medpy.

jxchen01 avatar jxchen01 commented on June 4, 2024

Here is the complete log of a clean MedPy installation from the master branch:

running develop
running egg_info
creating MedPy.egg-info
writing requirements to MedPy.egg-info/requires.txt
writing MedPy.egg-info/PKG-INFO
writing top-level names to MedPy.egg-info/top_level.txt
writing dependency_links to MedPy.egg-info/dependency_links.txt
writing manifest file 'MedPy.egg-info/SOURCES.txt'
reading manifest file 'MedPy.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'lib/maxflow/src/readme'
writing manifest file 'MedPy.egg-info/SOURCES.txt'
running build_ext
building 'medpy.graphcut.maxflow' extension
creating build
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/lib
creating build/temp.linux-x86_64-2.7/lib/maxflow
creating build/temp.linux-x86_64-2.7/lib/maxflow/src
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DMAJOR_VERSION=0 -DMINOR_VERSION=1 -I/usr/include/python2.7 -c lib/maxflow/src/maxflow.cpp -o build/temp.linux-x86_64-2.7/lib/maxflow/src/maxflow.o -O0
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
lib/maxflow/src/maxflow.cpp: In instantiation of ‘flowtype Graph<captype, tcaptype, flowtype>::maxflow(bool, Block) [with captype = int; tcaptype = int; flowtype = int]’:
lib/maxflow/src/instances.inc:12:16: required from here
lib/maxflow/src/maxflow.cpp:484:84: warning: deprecated conversion from string constant to ‘char
’ [-Wwrite-strings]
eration == 0 && reuse_trees) { if (error_function) (error_function)("reuse_tre
^
lib/maxflow/src/maxflow.cpp:485:75: warning: deprecated conversion from string constant to ‘char
’ [-Wwrite-strings]
hanged_list && !reuse_trees) { if (error_function) (error_function)("changed_l
^
lib/maxflow/src/maxflow.cpp: In instantiation of ‘void Graph<captype, tcaptype, flowtype>::process_source_orphan(Graph<captype, tcaptype, flowtype>::node
) [with captype = int; tcaptype = int; flowtype = int]’:
lib/maxflow/src/instances.inc:12:16: required from here
lib/maxflow/src/maxflow.cpp:366:2: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
if (i->parent = a0_min)
^
lib/maxflow/src/maxflow.cpp: In instantiation of ‘void Graph<captype, tcaptype, flowtype>::process_sink_orphan(Graph<captype, tcaptype, flowtype>::node*) [with captype = int; tcaptype = int; flowtype = int]’:
lib/maxflow/src/instances.inc:12:16: required from here
lib/maxflow/src/maxflow.cpp:443:2: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
if (i->parent = a0_min)
^
lib/maxflow/src/maxflow.cpp: In instantiation of ‘flowtype Graph<captype, tcaptype, flowtype>::maxflow(bool, Block) [with captype = short int; tcaptype = int; flowtype = int]’:
lib/maxflow/src/instances.inc:13:16: required from here
lib/maxflow/src/maxflow.cpp:484:84: warning: deprecated conversion from string constant to ‘char
’ [-Wwrite-strings]
eration == 0 && reuse_trees) { if (error_function) (error_function)("reuse_tre
^
lib/maxflow/src/maxflow.cpp:485:75: warning: deprecated conversion from string constant to ‘char
’ [-Wwrite-strings]
hanged_list && !reuse_trees) { if (error_function) (error_function)("changed_l
^
lib/maxflow/src/maxflow.cpp: In instantiation of ‘void Graph<captype, tcaptype, flowtype>::process_source_orphan(Graph<captype, tcaptype, flowtype>::node
) [with captype = short int; tcaptype = int; flowtype = int]’:
lib/maxflow/src/instances.inc:13:16: required from here
lib/maxflow/src/maxflow.cpp:366:2: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
if (i->parent = a0_min)
^
lib/maxflow/src/maxflow.cpp: In instantiation of ‘void Graph<captype, tcaptype, flowtype>::process_sink_orphan(Graph<captype, tcaptype, flowtype>::node*) [with captype = short int; tcaptype = int; flowtype = int]’:
lib/maxflow/src/instances.inc:13:16: required from here
lib/maxflow/src/maxflow.cpp:443:2: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
if (i->parent = a0_min)
^
lib/maxflow/src/maxflow.cpp: In instantiation of ‘flowtype Graph<captype, tcaptype, flowtype>::maxflow(bool, Block) [with captype = float; tcaptype = float; flowtype = float]’:
lib/maxflow/src/instances.inc:14:16: required from here
lib/maxflow/src/maxflow.cpp:484:84: warning: deprecated conversion from string constant to ‘char
’ [-Wwrite-strings]
eration == 0 && reuse_trees) { if (error_function) (error_function)("reuse_tre
^
lib/maxflow/src/maxflow.cpp:485:75: warning: deprecated conversion from string constant to ‘char
’ [-Wwrite-strings]
hanged_list && !reuse_trees) { if (error_function) (error_function)("changed_l
^
lib/maxflow/src/maxflow.cpp: In instantiation of ‘void Graph<captype, tcaptype, flowtype>::process_source_orphan(Graph<captype, tcaptype, flowtype>::node
) [with captype = float; tcaptype = float; flowtype = float]’:
lib/maxflow/src/instances.inc:14:16: required from here
lib/maxflow/src/maxflow.cpp:366:2: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
if (i->parent = a0_min)
^
lib/maxflow/src/maxflow.cpp: In instantiation of ‘void Graph<captype, tcaptype, flowtype>::process_sink_orphan(Graph<captype, tcaptype, flowtype>::node*) [with captype = float; tcaptype = float; flowtype = float]’:
lib/maxflow/src/instances.inc:14:16: required from here
lib/maxflow/src/maxflow.cpp:443:2: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
if (i->parent = a0_min)
^
lib/maxflow/src/maxflow.cpp: In instantiation of ‘flowtype Graph<captype, tcaptype, flowtype>::maxflow(bool, Block) [with captype = double; tcaptype = double; flowtype = double]’:
lib/maxflow/src/instances.inc:15:16: required from here
lib/maxflow/src/maxflow.cpp:484:84: warning: deprecated conversion from string constant to ‘char
’ [-Wwrite-strings]
eration == 0 && reuse_trees) { if (error_function) (error_function)("reuse_tre
^
lib/maxflow/src/maxflow.cpp:485:75: warning: deprecated conversion from string constant to ‘char
’ [-Wwrite-strings]
hanged_list && !reuse_trees) { if (error_function) (error_function)("changed_l
^
lib/maxflow/src/maxflow.cpp: In instantiation of ‘void Graph<captype, tcaptype, flowtype>::process_source_orphan(Graph<captype, tcaptype, flowtype>::node
) [with captype = double; tcaptype = double; flowtype = double]’:
lib/maxflow/src/instances.inc:15:16: required from here
lib/maxflow/src/maxflow.cpp:366:2: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
if (i->parent = a0_min)
^
lib/maxflow/src/maxflow.cpp: In instantiation of ‘void Graph<captype, tcaptype, flowtype>::process_sink_orphan(Graph<captype, tcaptype, flowtype>::node*) [with captype = double; tcaptype = double; flowtype = double]’:
lib/maxflow/src/instances.inc:15:16: required from here
lib/maxflow/src/maxflow.cpp:443:2: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
if (i->parent = a0_min)
^
In file included from lib/maxflow/src/graph.h:42:0,
from lib/maxflow/src/maxflow.cpp:5:
lib/maxflow/src/block.h: In instantiation of ‘Type* DBlock::New() [with Type = Graph<int, int, int>::nodeptr]’:
lib/maxflow/src/maxflow.cpp:84:5: required from ‘void Graph<captype, tcaptype, flowtype>::set_orphan_front(Graph<captype, tcaptype, flowtype>::node*) [with captype = int; tcaptype = int; flowtype = int]’
lib/maxflow/src/instances.inc:12:16: required from here
lib/maxflow/src/block.h:223:55: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if (!first) { if (error_function) (error_function)("Not enough memory!"); e
^
lib/maxflow/src/block.h: In instantiation of ‘Type
Block::New(int) [with Type = int]’:
lib/maxflow/src/maxflow.cpp:110:35: required from ‘void Graph<captype, tcaptype, flowtype>::add_to_changed_list(Graph<captype, tcaptype, flowtype>::node*) [with captype = int; tcaptype = int; flowtype = int]’
lib/maxflow/src/instances.inc:12:16: required from here
lib/maxflow/src/block.h:124:55: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if (!next) { if (error_function) (error_function)("Not enough memory!"); e
^
lib/maxflow/src/block.h: In instantiation of ‘Type
DBlock::New() [with Type = Graph<short int, int, int>::nodeptr]’:
lib/maxflow/src/maxflow.cpp:84:5: required from ‘void Graph<captype, tcaptype, flowtype>::set_orphan_front(Graph<captype, tcaptype, flowtype>::node*) [with captype = short int; tcaptype = int; flowtype = int]’
lib/maxflow/src/instances.inc:13:16: required from here
lib/maxflow/src/block.h:223:55: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if (!first) { if (error_function) (error_function)("Not enough memory!"); e
^
lib/maxflow/src/block.h: In instantiation of ‘Type
DBlock::New() [with Type = Graph<float, float, float>::nodeptr]’:
lib/maxflow/src/maxflow.cpp:84:5: required from ‘void Graph<captype, tcaptype, flowtype>::set_orphan_front(Graph<captype, tcaptype, flowtype>::node*) [with captype = float; tcaptype = float; flowtype = float]’
lib/maxflow/src/instances.inc:14:16: required from here
lib/maxflow/src/block.h:223:55: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
lib/maxflow/src/block.h: In instantiation of ‘Type* DBlock::New() [with Type = Graph<double, double, double>::nodeptr]’:
lib/maxflow/src/maxflow.cpp:84:5: required from ‘void Graph<captype, tcaptype, flowtype>::set_orphan_front(Graph<captype, tcaptype, flowtype>::node*) [with captype = double; tcaptype = double; flowtype = double]’
lib/maxflow/src/instances.inc:15:16: required from here
lib/maxflow/src/block.h:223:55: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DMAJOR_VERSION=0 -DMINOR_VERSION=1 -I/usr/include/python2.7 -c lib/maxflow/src/wrapper.cpp -o build/temp.linux-x86_64-2.7/lib/maxflow/src/wrapper.o -O0
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
In file included from lib/maxflow/src/wrapper.cpp:1:0:
lib/maxflow/src/pythongraph.h: In instantiation of ‘flowtype Pythongraph<captype, tcaptype, flowtype>::maxflow() [with captype = float; tcaptype = float; flowtype = float]’:
lib/maxflow/src/wrapper.cpp:36:38: required from here
lib/maxflow/src/pythongraph.h:20:70: warning: no return statement in function returning non-void [-Wreturn-type]
flowtype maxflow() { Graph<captype, tcaptype, flowtype>::maxflow(); };
^
In file included from lib/maxflow/src/wrapper.cpp:1:0:
lib/maxflow/src/pythongraph.h: In instantiation of ‘typename Graph<captype, tcaptype, flowtype>::termtype Pythongraph<captype, tcaptype, flowtype>::what_segment(int) [with captype = float; tcaptype = float; flowtype = float; typename Graph<captype, tcaptype, flowtype>::termtype = Graph<float, float, float>::termtype]’:
lib/maxflow/src/wrapper.cpp:37:43: required from here
lib/maxflow/src/pythongraph.h:21:131: warning: no return statement in function returning non-void [-Wreturn-type]
e what_segment(int i) { Graph<captype, tcaptype, flowtype>::what_segment(i); };
^
In file included from lib/maxflow/src/wrapper.cpp:1:0:
lib/maxflow/src/pythongraph.h: In instantiation of ‘flowtype Pythongraph<captype, tcaptype, flowtype>::maxflow() [with captype = double; tcaptype = double; flowtype = double]’:
lib/maxflow/src/wrapper.cpp:68:39: required from here
lib/maxflow/src/pythongraph.h:20:70: warning: no return statement in function returning non-void [-Wreturn-type]
flowtype maxflow() { Graph<captype, tcaptype, flowtype>::maxflow(); };
^
In file included from lib/maxflow/src/wrapper.cpp:1:0:
lib/maxflow/src/pythongraph.h: In instantiation of ‘typename Graph<captype, tcaptype, flowtype>::termtype Pythongraph<captype, tcaptype, flowtype>::what_segment(int) [with captype = double; tcaptype = double; flowtype = double; typename Graph<captype, tcaptype, flowtype>::termtype = Graph<double, double, double>::termtype]’:
lib/maxflow/src/wrapper.cpp:69:44: required from here
lib/maxflow/src/pythongraph.h:21:131: warning: no return statement in function returning non-void [-Wreturn-type]
e what_segment(int i) { Graph<captype, tcaptype, flowtype>::what_segment(i); };
^
In file included from lib/maxflow/src/wrapper.cpp:1:0:
lib/maxflow/src/pythongraph.h: In instantiation of ‘flowtype Pythongraph<captype, tcaptype, flowtype>::maxflow() [with captype = int; tcaptype = int; flowtype = int]’:
lib/maxflow/src/wrapper.cpp:100:32: required from here
lib/maxflow/src/pythongraph.h:20:70: warning: no return statement in function returning non-void [-Wreturn-type]
flowtype maxflow() { Graph<captype, tcaptype, flowtype>::maxflow(); };
^
In file included from lib/maxflow/src/wrapper.cpp:1:0:
lib/maxflow/src/pythongraph.h: In instantiation of ‘typename Graph<captype, tcaptype, flowtype>::termtype Pythongraph<captype, tcaptype, flowtype>::what_segment(int) [with captype = int; tcaptype = int; flowtype = int; typename Graph<captype, tcaptype, flowtype>::termtype = Graph<int, int, int>::termtype]’:
lib/maxflow/src/wrapper.cpp:101:37: required from here
lib/maxflow/src/pythongraph.h:21:131: warning: no return statement in function returning non-void [-Wreturn-type]
e what_segment(int i) { Graph<captype, tcaptype, flowtype>::what_segment(i); };
^
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DMAJOR_VERSION=0 -DMINOR_VERSION=1 -I/usr/include/python2.7 -c lib/maxflow/src/graph.cpp -o build/temp.linux-x86_64-2.7/lib/maxflow/src/graph.o -O0
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
lib/maxflow/src/graph.cpp: In instantiation of ‘Graph<captype, tcaptype, flowtype>::Graph(int, int, void ()(char)) [with captype = int; tcaptype = int; flowtype = int]’:
lib/maxflow/src/instances.inc:12:16: required from here
lib/maxflow/src/graph.cpp:22:62: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if (!nodes || !arcs) { if (error_function) (error_function)("Not enough memor
^
lib/maxflow/src/graph.cpp: In instantiation of ‘void Graph<captype, tcaptype, flowtype>::reallocate_nodes(int) [with captype = int; tcaptype = int; flowtype = int]’:
lib/maxflow/src/instances.inc:12:16: required from here
lib/maxflow/src/graph.cpp:71:53: warning: deprecated conversion from string constant to ‘char
’ [-Wwrite-strings]
if (!nodes) { if (error_function) (error_function)("Not enough memory!"); exi
^
lib/maxflow/src/graph.cpp: In instantiation of ‘void Graph<captype, tcaptype, flowtype>::reallocate_arcs() [with captype = int; tcaptype = int; flowtype = int]’:
lib/maxflow/src/instances.inc:12:16: required from here
lib/maxflow/src/graph.cpp:95:52: warning: deprecated conversion from string constant to ‘char
’ [-Wwrite-strings]
if (!arcs) { if (error_function) (error_function)("Not enough memory!"); exit
^
lib/maxflow/src/graph.cpp: In instantiation of ‘Graph<captype, tcaptype, flowtype>::Graph(int, int, void (
)(char*)) [with captype = short int; tcaptype = int; flowtype = int]’:
lib/maxflow/src/instances.inc:13:16: required from here
lib/maxflow/src/graph.cpp:22:62: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if (!nodes || !arcs) { if (error_function) (error_function)("Not enough memor
^
lib/maxflow/src/graph.cpp: In instantiation of ‘void Graph<captype, tcaptype, flowtype>::reallocate_nodes(int) [with captype = short int; tcaptype = int; flowtype = int]’:
lib/maxflow/src/instances.inc:13:16: required from here
lib/maxflow/src/graph.cpp:71:53: warning: deprecated conversion from string constant to ‘char
’ [-Wwrite-strings]
if (!nodes) { if (error_function) (error_function)("Not enough memory!"); exi
^
lib/maxflow/src/graph.cpp: In instantiation of ‘void Graph<captype, tcaptype, flowtype>::reallocate_arcs() [with captype = short int; tcaptype = int; flowtype = int]’:
lib/maxflow/src/instances.inc:13:16: required from here
lib/maxflow/src/graph.cpp:95:52: warning: deprecated conversion from string constant to ‘char
’ [-Wwrite-strings]
if (!arcs) { if (error_function) (error_function)("Not enough memory!"); exit
^
lib/maxflow/src/graph.cpp: In instantiation of ‘Graph<captype, tcaptype, flowtype>::Graph(int, int, void (
)(char*)) [with captype = float; tcaptype = float; flowtype = float]’:
lib/maxflow/src/instances.inc:14:16: required from here
lib/maxflow/src/graph.cpp:22:62: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if (!nodes || !arcs) { if (error_function) (error_function)("Not enough memor
^
lib/maxflow/src/graph.cpp: In instantiation of ‘void Graph<captype, tcaptype, flowtype>::reallocate_nodes(int) [with captype = float; tcaptype = float; flowtype = float]’:
lib/maxflow/src/instances.inc:14:16: required from here
lib/maxflow/src/graph.cpp:71:53: warning: deprecated conversion from string constant to ‘char
’ [-Wwrite-strings]
if (!nodes) { if (error_function) (error_function)("Not enough memory!"); exi
^
lib/maxflow/src/graph.cpp: In instantiation of ‘void Graph<captype, tcaptype, flowtype>::reallocate_arcs() [with captype = float; tcaptype = float; flowtype = float]’:
lib/maxflow/src/instances.inc:14:16: required from here
lib/maxflow/src/graph.cpp:95:52: warning: deprecated conversion from string constant to ‘char
’ [-Wwrite-strings]
if (!arcs) { if (error_function) (error_function)("Not enough memory!"); exit
^
lib/maxflow/src/graph.cpp: In instantiation of ‘Graph<captype, tcaptype, flowtype>::Graph(int, int, void (
)(char*)) [with captype = double; tcaptype = double; flowtype = double]’:
lib/maxflow/src/instances.inc:15:16: required from here
lib/maxflow/src/graph.cpp:22:62: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if (!nodes || !arcs) { if (error_function) (error_function)("Not enough memor
^
lib/maxflow/src/graph.cpp: In instantiation of ‘void Graph<captype, tcaptype, flowtype>::reallocate_nodes(int) [with captype = double; tcaptype = double; flowtype = double]’:
lib/maxflow/src/instances.inc:15:16: required from here
lib/maxflow/src/graph.cpp:71:53: warning: deprecated conversion from string constant to ‘char
’ [-Wwrite-strings]
if (!nodes) { if (error_function) (error_function)("Not enough memory!"); exi
^
lib/maxflow/src/graph.cpp: In instantiation of ‘void Graph<captype, tcaptype, flowtype>::reallocate_arcs() [with captype = double; tcaptype = double; flowtype = double]’:
lib/maxflow/src/instances.inc:15:16: required from here
lib/maxflow/src/graph.cpp:95:52: warning: deprecated conversion from string constant to ‘char
’ [-Wwrite-strings]
if (!arcs) { if (error_function) (*error_function)("Not enough memory!"); exit
^
c++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/lib/maxflow/src/maxflow.o build/temp.linux-x86_64-2.7/lib/maxflow/src/wrapper.o build/temp.linux-x86_64-2.7/lib/maxflow/src/graph.o -lboost_python-py27 -o /home/jianxuc/Projects/python_image_analysis/medpy/medpy/graphcut/maxflow.so
Creating /usr/local/lib/python2.7/dist-packages/MedPy.egg-link (link to .)
MedPy 0.3.0 is already the active version in easy-install.pth
Installing medpy_anisotropic_diffusion.py script to /usr/local/bin
Installing medpy_apparent_diffusion_coefficient.py script to /usr/local/bin
Installing medpy_binary_resampling.py script to /usr/local/bin
Installing medpy_convert.py script to /usr/local/bin
Installing medpy_create_empty_volume_by_example.py script to /usr/local/bin
Installing medpy_dicom_slices_to_volume.py script to /usr/local/bin
Installing medpy_dicom_to_4D.py script to /usr/local/bin
Installing medpy_diff.py script to /usr/local/bin
Installing medpy_extract_contour.py script to /usr/local/bin
Installing medpy_extract_min_max.py script to /usr/local/bin
Installing medpy_extract_sub_volume_auto.py script to /usr/local/bin
Installing medpy_extract_sub_volume_by_example.py script to /usr/local/bin
Installing medpy_extract_sub_volume.py script to /usr/local/bin
Installing medpy_fit_into_shape.py script to /usr/local/bin
Installing medpy_gradient.py script to /usr/local/bin
Installing medpy_graphcut_label_bgreduced.py script to /usr/local/bin
Installing medpy_graphcut_label_w_regional.py script to /usr/local/bin
Installing medpy_graphcut_label_wsplit.py script to /usr/local/bin
Installing medpy_graphcut_label.py script to /usr/local/bin
Installing medpy_graphcut_voxel.py script to /usr/local/bin
Installing medpy_grid.py script to /usr/local/bin
Installing medpy_info.py script to /usr/local/bin
Installing medpy_intensity_range_standardization.py script to /usr/local/bin
Installing medpy_intersection.py script to /usr/local/bin
Installing medpy_itk_gradient.py script to /usr/local/bin
Installing medpy_itk_smoothing.py script to /usr/local/bin
Installing medpy_itk_watershed.py script to /usr/local/bin
Installing medpy_join_masks.py script to /usr/local/bin
Installing medpy_join_xd_to_xplus1d.py script to /usr/local/bin
Installing medpy_label_count.py script to /usr/local/bin
Installing medpy_label_fit_to_mask.py script to /usr/local/bin
Installing medpy_label_superimposition.py script to /usr/local/bin
Installing medpy_merge.py script to /usr/local/bin
Installing medpy_morphology.py script to /usr/local/bin
Installing medpy_resample.py script to /usr/local/bin
Installing medpy_reslice_3d_to_4d.py script to /usr/local/bin
Installing medpy_set_pixel_spacing.py script to /usr/local/bin
Installing medpy_shrink_image.py script to /usr/local/bin
Installing medpy_split_xd_to_xminus1d.py script to /usr/local/bin
Installing medpy_stack_sub_volumes.py script to /usr/local/bin
Installing medpy_swap_dimensions.py script to /usr/local/bin
Installing medpy_watershed.py script to /usr/local/bin
Installing medpy_zoom_image.py script to /usr/local/bin

Installed /home/jianxuc/Projects/python_image_analysis/medpy
Processing dependencies for MedPy==0.3.0
Searching for pydicom==0.9.9
Best match: pydicom 0.9.9
Adding pydicom 0.9.9 to easy-install.pth file

Using /usr/local/lib/python2.7/dist-packages
Searching for nibabel==2.2.1
Best match: nibabel 2.2.1
Adding nibabel 2.2.1 to easy-install.pth file

Using /usr/local/lib/python2.7/dist-packages
Searching for numpy==1.13.3
Best match: numpy 1.13.3
Adding numpy 1.13.3 to easy-install.pth file

Using /usr/local/lib/python2.7/dist-packages
Searching for scipy==1.0.0
Best match: scipy 1.0.0
Adding scipy 1.0.0 to easy-install.pth file

Using /usr/local/lib/python2.7/dist-packages
Finished processing dependencies for MedPy==0.3.0

from medpy.

jxchen01 avatar jxchen01 commented on June 4, 2024

Also, python -c "import medpy; print(medpy.file)"

gives me:

/home/jianxuc/Projects/python_image_analysis/medpy/medpy/init.py

But, strings anaconda3/bin/../lib/libstdc++.so.6 | grep GLIBC

cannot find libstdc++.so.6. Namely, I canot find any file with name "libstdc++.so.6" in any sub-directory of /anaconda3/bin/

On my machine, python 3 and all other packages are maintained by anaconda. Is it possible that the installation of MedPy doesn't recognize this and use the native python 2.7 on the machine to install?

from medpy.

loli avatar loli commented on June 4, 2024

I can only assume it has to do with MedPy finding the global python version instead of the anaconda one. I won't fix this, since it's more Anaconda than MedPy related.

from medpy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.