Skip to main content
 首页 » 编程设计

python之在python中导入networkx时出现"Expected in: flat namespace"错误

2025年05月04日7emanlee

我遇到了一个我无法理解的奇怪错误。

在 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