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_PATH
、PATH
和 PYTHONPATH
...
要检查的一件事是 运行 Eclipse 从你得到东西的同一个控制台 运行(因为它应该继承那些变量)。
使用以下代码
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_PATH
、PATH
和 PYTHONPATH
...
要检查的一件事是 运行 Eclipse 从你得到东西的同一个控制台 运行(因为它应该继承那些变量)。