问题描述
今天我已经使用以下命令使用python3.6编译了boost和graph-tool的源代码
[root@scentos boost_1_73_0]# ./bootstrap.sh --with-python=python3 --with-python-root=/usr/bin/python3.6 --with-python-version=3.6
[root@scentos boost_1_73_0]# ./b2 install
[root@scentos graph-tool-master]# ./autogen.sh
[root@scentos graph-tool-master]# ./configure --with-python-module-path=/usr/local/lib/python3.6/site-packages PYTHON=python3.6 --with-boost-python=boost_python36 --disable-sparsehash --with-boost-libdir=/usr/local/lib
[root@scentos graph-tool-master]# make && make install
在整个生产过程中没有发生任何错误,但是当我尝试在python3.6中导入graph-tool时,发生了如下错误
[root@scentos graph-tool-master]# python3.6
Python 3.6.8 (default,Apr 2 2020,13:34:55)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help","copyright","credits" or "license" for more @R_683_4045@ion.
>>> from graph_tool.all import *
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
File "/usr/local/lib/python3.6/site-packages/graph_tool/all.py",line 29,in <module>
from graph_tool.correlations import *
File "/usr/local/lib/python3.6/site-packages/graph_tool/correlations/__init__.py",line 43,in <module>
dl_import("from . import libgraph_tool_correlations")
File "/usr/local/lib/python3.6/site-packages/graph_tool/dl_import.py",line 58,in dl_import
exec(import_expr,local_dict,global_dict)
File "<string>",in <module>
ImportError: dynamic module does not define module export function (PyInit_libgraph_tool_correlations)
>>> exit()
有我的/ source / profile文件
pathmunge () {
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
esac
}
if [ -x /usr/bin/id ]; then
if [ -z "$EUID" ]; then
# ksh workaround
EUID=`/usr/bin/id -u`
UID=`/usr/bin/id -ru`
fi
USER="`/usr/bin/id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
fi
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /usr/sbin
pathmunge /usr/local/sbin
else
pathmunge /usr/local/sbin after
pathmunge /usr/sbin after
fi
HOSTNAME=`/usr/bin/hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
export HISTCONTROL=ignoreboth
else
export HISTCONTROL=ignoredups
fi
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
# By default,we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You Could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002
else
umask 022
fi
for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
unset i
unset -f pathmunge
#PATH=$PATH:/usr/bin/java
#export PATH
JAVA_HOME=/home/szc/jdk8_64
export JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin
export KE_HOME=/home/szc/kafka_eagle/kafka-eagle-web-1.3.7
export PATH=$PATH:$KE_PATH/bin
export HADOOP_HOME=/home/szc/hadoop-2.7.2
export HIVE_HOME=/home/szc/apache-hive-2.3.7
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$PATH:$HIVE_HOME/bin:$HADOOP_HOME/sbin
export SCALA_HOME=/home/szc/scala-2.11.8
export PATH=$PATH:$SCALA_HOME/bin
export SPARK_HOME=/home/szc/spark-2.1.0
export PATH=$PATH:$SPARK_HOME/bin
export PYTHON_HOME=/usr/bin
export PATH=$PATH:$PYTHON_HOME/python3.6
export PATH=/usr/local/git/bin:$PATH
export PATH=/home/szc/hbase-1.3.1/bin:$PATH
export M2_HOME=/home/szc/apache-maven-3.3.9
export PATH=$M2_HOME/bin:$PATH
export SPARK_MASTER_HOST=sCentos
export HADOOP_CONF_DIR=/home/szc/hadoop-2.7.2/etc/hadoop
export PATH=$PATH:/home/szc/DynamicGraph/boost_1_73_0/bin
有些博客说这是因为Anaconda路径变量,但是我从未在CentOS7中安装Anaconda或Miniconda。还有一些人说它是因为graph-tool与python3不兼容。但是,当我使用Python2.7尝试上述步骤时,出现了类似这样的问题,而解决方案仍然向我展现:
>>> from graph_tool.all import *
Traceback (most recent call last):
File "<stdin>",in <module>
ImportError: No module named abc
现在,我不知道该如何处理
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)