我遇到了一个我无法理解的奇怪错误。
在 Python 2.7 上,我使用 MacPorts 安装了 py27-networkx 包。当我尝试 import networkx as nx 时,出现以下错误。我的 network.py 文件中唯一的一行是导入行。
关于如何调试它以了解发生了什么的任何想法?
Traceback (most recent call last):
File "network.py", line 1, in <module>
import networkx
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/networkx/__init__.py", line 43, in <module>
from networkx import release
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/networkx/release.py", line 45, in <module>
import subprocess
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 427, in <module>
import select
ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/select.so, 2): Symbol not found: __PyInt_AsInt
Referenced from: /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/select.so
Expected in: flat namespace
in /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/select.so
更新
跑了几条来帮助诊断。希望它能帮助别人为我提供一些见解和解决方案。
which python给我/opt/local/bin/python(我有标准的 Mac OS X python,但我使用的是安装了 MacPorts 的 python2.7 版本)- 在 python 提示符下运行
import networkx不会产生任何错误 - 还有什么我可以尝试的吗?
请您参考如下方法:
我也有这个错误,我通过用 macports 升级 python27 来修复。
将 macports 更新到最新版本:
sudo port selfupdate
列出过时的包(当我收到导入错误时,python27 对我来说已经过时了):
sudo port outdated
更新过时的包:
sudo port upgrade outdated
