PyDev 中 fftconvolve 的导入错误

ImportError for fftconvolve in PyDev

使用以下代码

import numpy as np
from scipy.signal import fftconvolve
import matplotlib.pyplot as plt

给出以下堆栈跟踪

Traceback (most recent call last):
  File "/Users/Erik/Documents/workspace- 
python/src/pywavelets/Problem1/Problem1.py", line 8, in <module>
    from scipy.signal import fftconvolve
  File "/Users/Erik/anaconda3/envs/tensorflow/lib/python3.6/site- 
packages/scipy/signal/__init__.py", line 311, in <module>
    from . import sigtools, windows
  File "/Users/Erik/anaconda3/envs/tensorflow/lib/python3.6/site- 
packages/scipy/signal/windows/__init__.py", line 40, in <module>
    from .windows import *
  File "/Users/Erik/anaconda3/envs/tensorflow/lib/python3.6/site- 
packages/scipy/signal/windows/windows.py", line 9, in <module>
    from scipy import fftpack, linalg, special
  File "/Users/Erik/anaconda3/envs/tensorflow/lib/python3.6/site- 
packages/scipy/fftpack/__init__.py", line 99, in <module>
    from .basic import *
  File "/Users/Erik/anaconda3/envs/tensorflow/lib/python3.6/site- 
packages/scipy/fftpack/basic.py", line 12, in <module>
    from . import _fftpack
ImportError: 
dlopen(/Users/Erik/anaconda3/envs/tensorflow/lib/python3.6/site- 
packages/scipy/fftpack/_fftpack.cpython-36m-darwin.so, 2): Symbol not 
found: _main
  Referenced from: 
/Users/Erik/anaconda3/envs/tensorflow/lib/python3.6/site- 
packages/scipy/fftpack/_fftpack.cpython-36m-darwin.so
  Expected in: flat namespace
 in /Users/Erik/anaconda3/envs/tensorflow/lib/python3.6/site- 
packages/scipy/fftpack/_fftpack.cpython-36m-darwin.so

我尝试使用 pip 重新安装 numpy 和 scipy,但没有做任何事情。

也许我需要在 PYTHONPATH 中指定一些库?我在别处读到 PyDev 应该自动检测必要的导入,而 numpy 和 tensorflow 似乎在没有指定任何外部目录的情况下工作正常。

我知道这个错误是 PyDev 特有的,因为代码在控制台中执行得很好。

谁能帮我查明问题所在?谢谢!

如果它在控制台中工作而不在 PyDev 中工作,请检查两种情况下您的环境变量是否相同。

即:

for key, val in sorted(os.environ.items()):
    print('%s=%s' % (key, val))

运行 两者并将输出保存在不同的文件中,然后进行比较以查看有何不同。最有可能的罪魁祸首是 LD_LIBRARY_PATHPATHPYTHONPATH...

要检查的一件事是 运行 Eclipse 从你得到东西的同一个控制台 运行(因为它应该继承那些变量)。