Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LHAPDF:在Python中运行时未定义的符号_Python_C++_Linux_Python 2.7_Ubuntu - Fatal编程技术网

LHAPDF:在Python中运行时未定义的符号

LHAPDF:在Python中运行时未定义的符号,python,c++,linux,python-2.7,ubuntu,Python,C++,Linux,Python 2.7,Ubuntu,我正在尝试使用Python接口,但收到以下错误消息: Traceback (most recent call last): File "test.py", line 2, in <module> import lhapdf ImportError: /home/n17182559/LHAPDF/lib/python2.7/site-packages/lhapdf.so: undefined symbol: _ZN6LHAPDF6ConfigD1Ev 如果它可以帮助你帮助

我正在尝试使用Python接口,但收到以下错误消息:

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    import lhapdf
ImportError: /home/n17182559/LHAPDF/lib/python2.7/site-packages/lhapdf.so: undefined symbol: _ZN6LHAPDF6ConfigD1Ev
如果它可以帮助你帮助我,我已经找到了一个人与一个,但原因似乎不是一样的事情(我没有安装蟒蛇)。当他们通过从$PATH中删除Anaconda来解决问题时,以下是我的$PATH和$PYTHONPATH,因为它们可能是问题的根源(尽管我不知道如何解决):


希望你们能帮忙

我无法回答您的具体问题,但当我遇到此类错误时,它源于包之间的版本不匹配:
lhapdf
依赖另一个包来定义神秘的“半隐藏”符号,但它所依赖的包的版本与预期的版本不同;旧/新版本没有提供该符号。

如果有人需要解决方案,我(在外部帮助下)解决了它。问题是主LHAPDF lib目录没有链接到我的LD_LIBRARY_路径。此命令行解决了此问题:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/LHAPDF/lib/libLHAP‌​DF.so
(我将其添加到我的~/.bashrc文件中)。

这是一个版本不匹配的问题(Python),这可能是由于安装了LHAPDF后升级Python造成的

因此,您可能必须重新安装LHAPDF,或者如果您使用两个版本的Python,您可以安装第二个LHAPDF(到目前为止,我还不知道还有其他解决方案)

假设您使用的是版本6.2或更高版本的LHAPDF,这要简单得多。首先,您希望在shell概要文件中设置路径,以便它指向要为其安装LHAPDF的Python版本。对于
bash
,您可以

export PATH=PATH/to/python
那么你想跟着我做什么

tar xf LHAPDF-6.X.Y.tar.gz
cd-PDF-6.X.Y
./configure--prefix=/path/for/installation
制作
安装
安装完成后,您可以通过

export PYTHONPATH=path/to/lhapdf/lib/pythonx.y/site-packages/
导出LD_LIBRARY_PATH=PATH/to/lhapdf/lib
导出路径=PATH/to/lhapdf/bin/:$PATH
导出LHAPDF\u DATA\u PATH=PATH/to/LHAPDF/share/LHAPDF

问题在于主LHAPDF lib目录未链接到我的LD\U库路径。导出LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/PATH/to/LHAPDF/lib/libLHAPDF。如果有人需要解决方案,请解决它。感谢帮助!我只是想尝试一下,但后来有人(stackoverflow之外的人)告诉我问题是什么,现在问题解决了(见我在原始帖子上的评论)。太棒了!请记住向上投票有用的东西并接受你最喜欢的答案(即使你必须自己写),这样堆栈溢出可以正确地存档问题。我们希望这是一个有用的,可搜索的答案库。好的,谢谢你的提示!事实上,我对你的答案投了更高的票,因为它对可能有类似问题的人来说是快速的、相关的和有用的,但我的投票没有出现,因为我的声誉仍然太低:P.I知道;我想你得打50分。作为海报,你仍然应该接受你的答案。是的,我刚刚做了,我不得不等一天。太好了!我希望是这么直接。
$PATH
/home/n17182559/LHAPDF/bin:/opt/applications/geant4/geant4.10.02-install/bin:/home/n17182559/ROOT/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:

$PYTHONPATH
/home/n17182559/ROOT/lib:/home/n17182559/LHAPDF/lib/python2.7/site-packages:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/LHAPDF/lib/libLHAP‌​DF.so