when I tried to install POT use the commond "pip install POT", I always meet problem “Could not build wheels for POT, which is required to install pyproject.toml-based projects”
Collecting POT
Using cached POT-0.8.2.tar.gz (255 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy>=1.16 in ./anaconda3/envs/py36/lib/python3.6/site-packages (from POT) (1.19.2)
Requirement already satisfied: scipy>=1.0 in ./anaconda3/envs/py36/lib/python3.6/site-packages (from POT) (1.5.4)
Building wheels for collected packages: POT
Building wheel for POT (pyproject.toml) ... error
ERROR: Command errored out with exit status 1:
command: /home/ll20/anaconda3/envs/py36/bin/python3 /home/ll20/anaconda3/envs/py36/lib/python3.6/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmpw4i_wpdh
cwd: /tmp/pip-install-9kg4vxnm/pot_4e7b690d6a354c238d684ac7e449ad42
Complete output (346 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.6
creating build/lib.linux-x86_64-3.6/ot
copying ot/__init__.py -> build/lib.linux-x86_64-3.6/ot
copying ot/backend.py -> build/lib.linux-x86_64-3.6/ot
copying ot/bregman.py -> build/lib.linux-x86_64-3.6/ot
copying ot/da.py -> build/lib.linux-x86_64-3.6/ot
copying ot/datasets.py -> build/lib.linux-x86_64-3.6/ot
copying ot/dr.py -> build/lib.linux-x86_64-3.6/ot
copying ot/factored.py -> build/lib.linux-x86_64-3.6/ot
copying ot/gromov.py -> build/lib.linux-x86_64-3.6/ot
copying ot/optim.py -> build/lib.linux-x86_64-3.6/ot
copying ot/partial.py -> build/lib.linux-x86_64-3.6/ot
copying ot/plot.py -> build/lib.linux-x86_64-3.6/ot
copying ot/regpath.py -> build/lib.linux-x86_64-3.6/ot
copying ot/sliced.py -> build/lib.linux-x86_64-3.6/ot
copying ot/smooth.py -> build/lib.linux-x86_64-3.6/ot
copying ot/stochastic.py -> build/lib.linux-x86_64-3.6/ot
copying ot/unbalanced.py -> build/lib.linux-x86_64-3.6/ot
copying ot/utils.py -> build/lib.linux-x86_64-3.6/ot
copying ot/weak.py -> build/lib.linux-x86_64-3.6/ot
creating build/lib.linux-x86_64-3.6/ot/helpers
copying ot/helpers/__init__.py -> build/lib.linux-x86_64-3.6/ot/helpers
copying ot/helpers/openmp_helpers.py -> build/lib.linux-x86_64-3.6/ot/helpers
copying ot/helpers/pre_build_helpers.py -> build/lib.linux-x86_64-3.6/ot/helpers
creating build/lib.linux-x86_64-3.6/ot/lp
copying ot/lp/__init__.py -> build/lib.linux-x86_64-3.6/ot/lp
copying ot/lp/cvx.py -> build/lib.linux-x86_64-3.6/ot/lp
copying ot/lp/solver_1d.py -> build/lib.linux-x86_64-3.6/ot/lp
running build_ext
building 'ot.lp.emd_wrap' extension
C compiler: gcc -pthread -B /home/ll20/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC
creating build/temp.linux-x86_64-3.6
creating build/temp.linux-x86_64-3.6/ot
creating build/temp.linux-x86_64-3.6/ot/lp
compile options: '-Iot/lp -I/tmp/pip-build-env-dgob8pab/overlay/lib/python3.6/site-packages/numpy/core/include -I/tmp/pip-install-9kg4vxnm/pot_4e7b690d6a354c238d684ac7e449ad42/ot/lp -I/home/ll20/anaconda3/envs/py36/include/python3.6m -c'
extra options: '-O3 -fopenmp -DOMP'
gcc: ot/lp/emd_wrap.cpp
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
In file included from /tmp/pip-build-env-dgob8pab/overlay/lib/python3.6/site-packages/numpy/core/include/numpy/ndarraytypes.h:1809:0,
from /tmp/pip-build-env-dgob8pab/overlay/lib/python3.6/site-packages/numpy/core/include/numpy/ndarrayobject.h:18,
from /tmp/pip-build-env-dgob8pab/overlay/lib/python3.6/site-packages/numpy/core/include/numpy/arrayobject.h:4,
from ot/lp/emd_wrap.cpp:792:
/tmp/pip-build-env-dgob8pab/overlay/lib/python3.6/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
#warning "Using deprecated NumPy API, disable it by " \
^
gcc: ot/lp/EMD_wrapper.cpp
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
In file included from /usr/include/c++/4.8.2/cstdint:35:0,
from ot/lp/full_bipartitegraph.h:29,
from ot/lp/network_simplex_simple.h:67,
from ot/lp/EMD_wrapper.cpp:16:
/usr/include/c++/4.8.2/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support for the \
^
In file included from ot/lp/EMD_wrapper.cpp:17:0:
ot/lp/network_simplex_simple_omp.h:119:3: error: ‘unordered_map’ in namespace ‘std’ does not name a type
std::unordered_map<size_t, T> data;
^
ot/lp/network_simplex_simple_omp.h: In member function ‘T lemon_omp::SparseValueVector<T>::operator[](size_t) const’:
ot/lp/network_simplex_simple_omp.h:102:18: error: ‘unordered_map’ in namespace ‘std’ does not name a type
typename std::unordered_map<size_t, T>::const_iterator it = data.find(id);
^
ot/lp/network_simplex_simple_omp.h:102:31: error: expected unqualified-id before ‘<’ token
typename std::unordered_map<size_t, T>::const_iterator it = data.find(id);
^
ot/lp/network_simplex_simple_omp.h:106:8: error: ‘it’ was not declared in this scope
if (it == data.end())
^
ot/lp/network_simplex_simple_omp.h:106:14: error: ‘data’ was not declared in this scope
if (it == data.end())
^
ot/lp/network_simplex_simple_omp.h: In member function ‘lemon_omp::ProxyObject<T>::operator T()’:
ot/lp/network_simplex_simple_omp.h:142:18: error: ‘unordered_map’ in namespace ‘std’ does not name a type
typename std::unordered_map<size_t, T>::iterator it = _v->data.find(_idx);
^
ot/lp/network_simplex_simple_omp.h:142:31: error: expected unqualified-id before ‘<’ token
typename std::unordered_map<size_t, T>::iterator it = _v->data.find(_idx);
^
ot/lp/network_simplex_simple_omp.h:146:8: error: ‘it’ was not declared in this scope
if (it == _v->data.end())
^
ot/lp/network_simplex_simple_omp.h: In member function ‘void lemon_omp::ProxyObject<T>::operator+=(T)’:
ot/lp/network_simplex_simple_omp.h:156:18: error: ‘unordered_map’ in namespace ‘std’ does not name a type
typename std::unordered_map<size_t, T>::iterator it = _v->data.find(_idx);
^
ot/lp/network_simplex_simple_omp.h:156:31: error: expected unqualified-id before ‘<’ token
typename std::unordered_map<size_t, T>::iterator it = _v->data.find(_idx);
^
ot/lp/network_simplex_simple_omp.h:160:8: error: ‘it’ was not declared in this scope
if (it == _v->data.end())
^
ot/lp/network_simplex_simple_omp.h: In member function ‘void lemon_omp::ProxyObject<T>::operator-=(T)’:
ot/lp/network_simplex_simple_omp.h:175:18: error: ‘unordered_map’ in namespace ‘std’ does not name a type
typename std::unordered_map<size_t, T>::iterator it = _v->data.find(_idx);
^
ot/lp/network_simplex_simple_omp.h:175:31: error: expected unqualified-id before ‘<’ token
typename std::unordered_map<size_t, T>::iterator it = _v->data.find(_idx);
^
ot/lp/network_simplex_simple_omp.h:179:8: error: ‘it’ was not declared in this scope
if (it == _v->data.end())
^
In file included from ot/lp/EMD_wrapper.cpp:17:0:
ot/lp/network_simplex_simple_omp.h: In member function ‘Number lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::totalCost() const’:
ot/lp/network_simplex_simple_omp.h:1006:18: error: ‘unordered_map’ in namespace ‘std’ does not name a type
typename std::unordered_map<size_t, Value>::const_iterator it;
^
ot/lp/network_simplex_simple_omp.h:1006:31: error: expected unqualified-id before ‘<’ token
typename std::unordered_map<size_t, Value>::const_iterator it;
^
ot/lp/network_simplex_simple_omp.h:1010:9: error: ‘it’ was not declared in this scope
for (it = _flow.data.begin(); it!=_flow.data.end(); ++it)
^
In file included from ot/lp/EMD_wrapper.cpp:16:0:
ot/lp/network_simplex_simple.h: In instantiation of ‘lemon::NetworkSimplexSimple<GR, V, C, NodesType, ArcsType>::NetworkSimplexSimple(const GR&, bool, int, ArcsType, size_t) [with GR = lemon::FullBipartiteDigraph; V = double; C = double; NodesType = unsigned int; ArcsType = long int; size_t = long unsigned int]’:
ot/lp/EMD_wrapper.cpp:57:116: required from here
ot/lp/network_simplex_simple.h:523:18: warning: ‘lemon::NetworkSimplexSimple<lemon::FullBipartiteDigraph, double, double, unsigned int>::_init_nb_arcs’ will be initialized after [-Wreorder]
ArcsType _init_nb_arcs;
^
ot/lp/network_simplex_simple.h:365:21: warning: ‘const Value lemon::NetworkSimplexSimple<lemon::FullBipartiteDigraph, double, double, unsigned int>::MAX’ [-Wreorder]
const Value MAX;
^
ot/lp/network_simplex_simple.h:236:9: warning: when initialized here [-Wreorder]
NetworkSimplexSimple(const GR& graph, bool arc_mixing, int nbnodes, ArcsType nb_arcs, size_t maxiters) :
^
In file included from ot/lp/EMD_wrapper.cpp:17:0:
ot/lp/network_simplex_simple_omp.h: In instantiation of ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::NetworkSimplexSimple(const GR&, bool, int, ArcsType, size_t, int) [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int; size_t = long unsigned int]’:
ot/lp/EMD_wrapper.cpp:159:128: required from here
ot/lp/network_simplex_simple_omp.h:661:12: warning: ‘lemon_omp::NetworkSimplexSimple<lemon_omp::FullBipartiteDigraph, double, double, unsigned int>::_init_nb_arcs’ will be initialized after [-Wreorder]
ArcsType _init_nb_arcs;
^
ot/lp/network_simplex_simple_omp.h:392:15: warning: ‘const Value lemon_omp::NetworkSimplexSimple<lemon_omp::FullBipartiteDigraph, double, double, unsigned int>::MAX’ [-Wreorder]
const Value MAX;
^
In file included from ot/lp/EMD_wrapper.cpp:17:0:
ot/lp/network_simplex_simple_omp.h:247:3: warning: when initialized here [-Wreorder]
NetworkSimplexSimple(const GR& graph, bool arc_mixing, int nbnodes, ArcsType nb_arcs, size_t maxiters = 0, int numThreads=-1) :
^
In file included from ot/lp/EMD_wrapper.cpp:16:0:
ot/lp/network_simplex_simple.h: In instantiation of ‘lemon::NetworkSimplexSimple<GR, V, C, NodesType, ArcsType>::ProblemType lemon::NetworkSimplexSimple<GR, V, C, NodesType, ArcsType>::start() [with PivotRuleImpl = lemon::NetworkSimplexSimple<lemon::FullBipartiteDigraph, double, double, unsigned int>::BlockSearchPivotRule; GR = lemon::FullBipartiteDigraph; V = double; C = double; NodesType = unsigned int; ArcsType = long int]’:
ot/lp/network_simplex_simple.h:1419:25: required from ‘lemon::NetworkSimplexSimple<GR, V, C, NodesType, ArcsType>::ProblemType lemon::NetworkSimplexSimple<GR, V, C, NodesType, ArcsType>::start() [with GR = lemon::FullBipartiteDigraph; V = double; C = double; NodesType = unsigned int; ArcsType = long int]’
ot/lp/network_simplex_simple.h:700:26: required from ‘lemon::NetworkSimplexSimple<GR, V, C, NodesType, ArcsType>::ProblemType lemon::NetworkSimplexSimple<GR, V, C, NodesType, ArcsType>::run() [with GR = lemon::FullBipartiteDigraph; V = double; C = double; NodesType = unsigned int; ArcsType = long int]’
ot/lp/EMD_wrapper.cpp:97:21: required from here
ot/lp/network_simplex_simple.h:1436:434: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
sprintf( errMess, "RESULT MIGHT BE INACURATE\nMax number of iteration reached, currently \%d. Sometimes iterations go on in cycle even though the solution has been reached, to check if it's the case here have a look at the minimal reduced cost. If it is very close to machine precision, you might actually have the correct solution, if not try setting the maximum number of iterations a bit higher\n",iter_number );
^
In file included from ot/lp/EMD_wrapper.cpp:17:0:
ot/lp/network_simplex_simple_omp.h: In instantiation of ‘lemon_omp::ProxyObject<T>& lemon_omp::ProxyObject<T>::operator=(const T&) [with T = double]’:
ot/lp/network_simplex_simple_omp.h:1145:16: required from ‘bool lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::init() [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/network_simplex_simple_omp.h:833:14: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::run() [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/EMD_wrapper.cpp:199:21: required from here
ot/lp/network_simplex_simple_omp.h:134:13: error: ‘class lemon_omp::SparseValueVector<double>’ has no member named ‘data’
_v->data[_idx] = v;
^
In file included from ot/lp/EMD_wrapper.cpp:17:0:
ot/lp/network_simplex_simple_omp.h: In instantiation of ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::start() [with PivotRuleImpl = lemon_omp::NetworkSimplexSimple<lemon_omp::FullBipartiteDigraph, double, double, unsigned int>::BlockSearchPivotRule; GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’:
ot/lp/network_simplex_simple_omp.h:1555:16: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::start() [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/network_simplex_simple_omp.h:838:17: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::run() [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/EMD_wrapper.cpp:199:21: required from here
ot/lp/network_simplex_simple_omp.h:1614:419: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
sprintf( errMess, "RESULT MIGHT BE INACURATE\nMax number of iteration reached, currently \%d. Sometimes iterations go on in cycle even though the solution has been reached, to check if it's the case here have a look at the minimal reduced cost. If it is very close to machine precision, you might actually have the correct solution, if not try setting the maximum number of iterations a bit higher\n",iter_number );
^
In file included from ot/lp/EMD_wrapper.cpp:17:0:
ot/lp/network_simplex_simple_omp.h: In instantiation of ‘lemon_omp::ProxyObject<T>::operator T() [with T = double]’:
ot/lp/network_simplex_simple_omp.h:1659:19: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::start() [with PivotRuleImpl = lemon_omp::NetworkSimplexSimple<lemon_omp::FullBipartiteDigraph, double, double, unsigned int>::BlockSearchPivotRule; GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/network_simplex_simple_omp.h:1555:16: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::start() [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/network_simplex_simple_omp.h:838:17: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::run() [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/EMD_wrapper.cpp:199:21: required from here
ot/lp/network_simplex_simple_omp.h:146:11: error: ‘class lemon_omp::SparseValueVector<double>’ has no member named ‘data’
if (it == _v->data.end())
^
ot/lp/network_simplex_simple_omp.h: In instantiation of ‘void lemon_omp::ProxyObject<T>::operator+=(T) [with T = double]’:
ot/lp/network_simplex_simple_omp.h:1302:19: required from ‘void lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::changeFlow(bool) [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/network_simplex_simple_omp.h:1595:23: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::start() [with PivotRuleImpl = lemon_omp::NetworkSimplexSimple<lemon_omp::FullBipartiteDigraph, double, double, unsigned int>::BlockSearchPivotRule; GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/network_simplex_simple_omp.h:1555:16: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::start() [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/network_simplex_simple_omp.h:838:17: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::run() [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/EMD_wrapper.cpp:199:21: required from here
ot/lp/network_simplex_simple_omp.h:160:11: error: ‘class lemon_omp::SparseValueVector<double>’ has no member named ‘data’
if (it == _v->data.end())
^
ot/lp/network_simplex_simple_omp.h:161:13: error: ‘class lemon_omp::SparseValueVector<double>’ has no member named ‘data’
_v->data[_idx] = val;
^
ot/lp/network_simplex_simple_omp.h:166:6: error: ‘class lemon_omp::SparseValueVector<double>’ has no member named ‘data’
_v->data.erase(it);
^
ot/lp/network_simplex_simple_omp.h: In member function ‘lemon_omp::ProxyObject<T>::operator T() [with T = double]’:
ot/lp/network_simplex_simple_omp.h:150:3: warning: control reaches end of non-void function [-Wreturn-type]
}
^
ot/lp/network_simplex_simple_omp.h: In member function ‘T lemon_omp::SparseValueVector<T>::operator[](size_t) const [with T = double; size_t = long unsigned int]’:
ot/lp/network_simplex_simple_omp.h:110:3: warning: control reaches end of non-void function [-Wreturn-type]
}
^
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
In file included from /usr/include/c++/4.8.2/cstdint:35:0,
from ot/lp/full_bipartitegraph.h:29,
from ot/lp/network_simplex_simple.h:67,
from ot/lp/EMD_wrapper.cpp:16:
/usr/include/c++/4.8.2/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support for the \
^
In file included from ot/lp/EMD_wrapper.cpp:17:0:
ot/lp/network_simplex_simple_omp.h:119:3: error: ‘unordered_map’ in namespace ‘std’ does not name a type
std::unordered_map<size_t, T> data;
^
ot/lp/network_simplex_simple_omp.h: In member function ‘T lemon_omp::SparseValueVector<T>::operator[](size_t) const’:
ot/lp/network_simplex_simple_omp.h:102:18: error: ‘unordered_map’ in namespace ‘std’ does not name a type
typename std::unordered_map<size_t, T>::const_iterator it = data.find(id);
^
ot/lp/network_simplex_simple_omp.h:102:31: error: expected unqualified-id before ‘<’ token
typename std::unordered_map<size_t, T>::const_iterator it = data.find(id);
^
ot/lp/network_simplex_simple_omp.h:106:8: error: ‘it’ was not declared in this scope
if (it == data.end())
^
ot/lp/network_simplex_simple_omp.h:106:14: error: ‘data’ was not declared in this scope
if (it == data.end())
^
ot/lp/network_simplex_simple_omp.h: In member function ‘lemon_omp::ProxyObject<T>::operator T()’:
ot/lp/network_simplex_simple_omp.h:142:18: error: ‘unordered_map’ in namespace ‘std’ does not name a type
typename std::unordered_map<size_t, T>::iterator it = _v->data.find(_idx);
^
ot/lp/network_simplex_simple_omp.h:142:31: error: expected unqualified-id before ‘<’ token
typename std::unordered_map<size_t, T>::iterator it = _v->data.find(_idx);
^
ot/lp/network_simplex_simple_omp.h:146:8: error: ‘it’ was not declared in this scope
if (it == _v->data.end())
^
ot/lp/network_simplex_simple_omp.h: In member function ‘void lemon_omp::ProxyObject<T>::operator+=(T)’:
ot/lp/network_simplex_simple_omp.h:156:18: error: ‘unordered_map’ in namespace ‘std’ does not name a type
typename std::unordered_map<size_t, T>::iterator it = _v->data.find(_idx);
^
ot/lp/network_simplex_simple_omp.h:156:31: error: expected unqualified-id before ‘<’ token
typename std::unordered_map<size_t, T>::iterator it = _v->data.find(_idx);
^
ot/lp/network_simplex_simple_omp.h:160:8: error: ‘it’ was not declared in this scope
if (it == _v->data.end())
^
ot/lp/network_simplex_simple_omp.h: In member function ‘void lemon_omp::ProxyObject<T>::operator-=(T)’:
ot/lp/network_simplex_simple_omp.h:175:18: error: ‘unordered_map’ in namespace ‘std’ does not name a type
typename std::unordered_map<size_t, T>::iterator it = _v->data.find(_idx);
^
ot/lp/network_simplex_simple_omp.h:175:31: error: expected unqualified-id before ‘<’ token
typename std::unordered_map<size_t, T>::iterator it = _v->data.find(_idx);
^
ot/lp/network_simplex_simple_omp.h:179:8: error: ‘it’ was not declared in this scope
if (it == _v->data.end())
^
In file included from ot/lp/EMD_wrapper.cpp:17:0:
ot/lp/network_simplex_simple_omp.h: In member function ‘Number lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::totalCost() const’:
ot/lp/network_simplex_simple_omp.h:1006:18: error: ‘unordered_map’ in namespace ‘std’ does not name a type
typename std::unordered_map<size_t, Value>::const_iterator it;
^
ot/lp/network_simplex_simple_omp.h:1006:31: error: expected unqualified-id before ‘<’ token
typename std::unordered_map<size_t, Value>::const_iterator it;
^
ot/lp/network_simplex_simple_omp.h:1010:9: error: ‘it’ was not declared in this scope
for (it = _flow.data.begin(); it!=_flow.data.end(); ++it)
^
In file included from ot/lp/EMD_wrapper.cpp:16:0:
ot/lp/network_simplex_simple.h: In instantiation of ‘lemon::NetworkSimplexSimple<GR, V, C, NodesType, ArcsType>::NetworkSimplexSimple(const GR&, bool, int, ArcsType, size_t) [with GR = lemon::FullBipartiteDigraph; V = double; C = double; NodesType = unsigned int; ArcsType = long int; size_t = long unsigned int]’:
ot/lp/EMD_wrapper.cpp:57:116: required from here
ot/lp/network_simplex_simple.h:523:18: warning: ‘lemon::NetworkSimplexSimple<lemon::FullBipartiteDigraph, double, double, unsigned int>::_init_nb_arcs’ will be initialized after [-Wreorder]
ArcsType _init_nb_arcs;
^
ot/lp/network_simplex_simple.h:365:21: warning: ‘const Value lemon::NetworkSimplexSimple<lemon::FullBipartiteDigraph, double, double, unsigned int>::MAX’ [-Wreorder]
const Value MAX;
^
ot/lp/network_simplex_simple.h:236:9: warning: when initialized here [-Wreorder]
NetworkSimplexSimple(const GR& graph, bool arc_mixing, int nbnodes, ArcsType nb_arcs, size_t maxiters) :
^
In file included from ot/lp/EMD_wrapper.cpp:17:0:
ot/lp/network_simplex_simple_omp.h: In instantiation of ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::NetworkSimplexSimple(const GR&, bool, int, ArcsType, size_t, int) [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int; size_t = long unsigned int]’:
ot/lp/EMD_wrapper.cpp:159:128: required from here
ot/lp/network_simplex_simple_omp.h:661:12: warning: ‘lemon_omp::NetworkSimplexSimple<lemon_omp::FullBipartiteDigraph, double, double, unsigned int>::_init_nb_arcs’ will be initialized after [-Wreorder]
ArcsType _init_nb_arcs;
^
ot/lp/network_simplex_simple_omp.h:392:15: warning: ‘const Value lemon_omp::NetworkSimplexSimple<lemon_omp::FullBipartiteDigraph, double, double, unsigned int>::MAX’ [-Wreorder]
const Value MAX;
^
In file included from ot/lp/EMD_wrapper.cpp:17:0:
ot/lp/network_simplex_simple_omp.h:247:3: warning: when initialized here [-Wreorder]
NetworkSimplexSimple(const GR& graph, bool arc_mixing, int nbnodes, ArcsType nb_arcs, size_t maxiters = 0, int numThreads=-1) :
^
In file included from ot/lp/EMD_wrapper.cpp:16:0:
ot/lp/network_simplex_simple.h: In instantiation of ‘lemon::NetworkSimplexSimple<GR, V, C, NodesType, ArcsType>::ProblemType lemon::NetworkSimplexSimple<GR, V, C, NodesType, ArcsType>::start() [with PivotRuleImpl = lemon::NetworkSimplexSimple<lemon::FullBipartiteDigraph, double, double, unsigned int>::BlockSearchPivotRule; GR = lemon::FullBipartiteDigraph; V = double; C = double; NodesType = unsigned int; ArcsType = long int]’:
ot/lp/network_simplex_simple.h:1419:25: required from ‘lemon::NetworkSimplexSimple<GR, V, C, NodesType, ArcsType>::ProblemType lemon::NetworkSimplexSimple<GR, V, C, NodesType, ArcsType>::start() [with GR = lemon::FullBipartiteDigraph; V = double; C = double; NodesType = unsigned int; ArcsType = long int]’
ot/lp/network_simplex_simple.h:700:26: required from ‘lemon::NetworkSimplexSimple<GR, V, C, NodesType, ArcsType>::ProblemType lemon::NetworkSimplexSimple<GR, V, C, NodesType, ArcsType>::run() [with GR = lemon::FullBipartiteDigraph; V = double; C = double; NodesType = unsigned int; ArcsType = long int]’
ot/lp/EMD_wrapper.cpp:97:21: required from here
ot/lp/network_simplex_simple.h:1436:434: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
sprintf( errMess, "RESULT MIGHT BE INACURATE\nMax number of iteration reached, currently \%d. Sometimes iterations go on in cycle even though the solution has been reached, to check if it's the case here have a look at the minimal reduced cost. If it is very close to machine precision, you might actually have the correct solution, if not try setting the maximum number of iterations a bit higher\n",iter_number );
^
In file included from ot/lp/EMD_wrapper.cpp:17:0:
ot/lp/network_simplex_simple_omp.h: In instantiation of ‘lemon_omp::ProxyObject<T>& lemon_omp::ProxyObject<T>::operator=(const T&) [with T = double]’:
ot/lp/network_simplex_simple_omp.h:1145:16: required from ‘bool lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::init() [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/network_simplex_simple_omp.h:833:14: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::run() [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/EMD_wrapper.cpp:199:21: required from here
ot/lp/network_simplex_simple_omp.h:134:13: error: ‘class lemon_omp::SparseValueVector<double>’ has no member named ‘data’
_v->data[_idx] = v;
^
In file included from ot/lp/EMD_wrapper.cpp:17:0:
ot/lp/network_simplex_simple_omp.h: In instantiation of ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::start() [with PivotRuleImpl = lemon_omp::NetworkSimplexSimple<lemon_omp::FullBipartiteDigraph, double, double, unsigned int>::BlockSearchPivotRule; GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’:
ot/lp/network_simplex_simple_omp.h:1555:16: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::start() [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/network_simplex_simple_omp.h:838:17: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::run() [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/EMD_wrapper.cpp:199:21: required from here
ot/lp/network_simplex_simple_omp.h:1614:419: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
sprintf( errMess, "RESULT MIGHT BE INACURATE\nMax number of iteration reached, currently \%d. Sometimes iterations go on in cycle even though the solution has been reached, to check if it's the case here have a look at the minimal reduced cost. If it is very close to machine precision, you might actually have the correct solution, if not try setting the maximum number of iterations a bit higher\n",iter_number );
^
In file included from ot/lp/EMD_wrapper.cpp:17:0:
ot/lp/network_simplex_simple_omp.h: In instantiation of ‘lemon_omp::ProxyObject<T>::operator T() [with T = double]’:
ot/lp/network_simplex_simple_omp.h:1659:19: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::start() [with PivotRuleImpl = lemon_omp::NetworkSimplexSimple<lemon_omp::FullBipartiteDigraph, double, double, unsigned int>::BlockSearchPivotRule; GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/network_simplex_simple_omp.h:1555:16: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::start() [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/network_simplex_simple_omp.h:838:17: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::run() [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/EMD_wrapper.cpp:199:21: required from here
ot/lp/network_simplex_simple_omp.h:146:11: error: ‘class lemon_omp::SparseValueVector<double>’ has no member named ‘data’
if (it == _v->data.end())
^
ot/lp/network_simplex_simple_omp.h: In instantiation of ‘void lemon_omp::ProxyObject<T>::operator+=(T) [with T = double]’:
ot/lp/network_simplex_simple_omp.h:1302:19: required from ‘void lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::changeFlow(bool) [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/network_simplex_simple_omp.h:1595:23: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::start() [with PivotRuleImpl = lemon_omp::NetworkSimplexSimple<lemon_omp::FullBipartiteDigraph, double, double, unsigned int>::BlockSearchPivotRule; GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/network_simplex_simple_omp.h:1555:16: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::start() [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/network_simplex_simple_omp.h:838:17: required from ‘lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::ProblemType lemon_omp::NetworkSimplexSimple<GR, V, C, ArcsType>::run() [with GR = lemon_omp::FullBipartiteDigraph; V = double; C = double; ArcsType = unsigned int]’
ot/lp/EMD_wrapper.cpp:199:21: required from here
ot/lp/network_simplex_simple_omp.h:160:11: error: ‘class lemon_omp::SparseValueVector<double>’ has no member named ‘data’
if (it == _v->data.end())
^
ot/lp/network_simplex_simple_omp.h:161:13: error: ‘class lemon_omp::SparseValueVector<double>’ has no member named ‘data’
_v->data[_idx] = val;
^
ot/lp/network_simplex_simple_omp.h:166:6: error: ‘class lemon_omp::SparseValueVector<double>’ has no member named ‘data’
_v->data.erase(it);
^
ot/lp/network_simplex_simple_omp.h: In member function ‘lemon_omp::ProxyObject<T>::operator T() [with T = double]’:
ot/lp/network_simplex_simple_omp.h:150:3: warning: control reaches end of non-void function [-Wreturn-type]
}
^
ot/lp/network_simplex_simple_omp.h: In member function ‘T lemon_omp::SparseValueVector<T>::operator[](size_t) const [with T = double; size_t = long unsigned int]’:
ot/lp/network_simplex_simple_omp.h:110:3: warning: control reaches end of non-void function [-Wreturn-type]
}
^
error: Command "gcc -pthread -B /home/ll20/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Iot/lp -I/tmp/pip-build-env-dgob8pab/overlay/lib/python3.6/site-packages/numpy/core/include -I/tmp/pip-install-9kg4vxnm/pot_4e7b690d6a354c238d684ac7e449ad42/ot/lp -I/home/ll20/anaconda3/envs/py36/include/python3.6m -c ot/lp/EMD_wrapper.cpp -o build/temp.linux-x86_64-3.6/ot/lp/EMD_wrapper.o -O3 -fopenmp -DOMP" failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for POT
Failed to build POT
ERROR: Could not build wheels for POT, which is required to install pyproject.toml-based projects```
bug help wanted