使用以下代码
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的,因为代码可以在控制台中很好地执行。
有人可以帮助我指出问题所在吗?谢谢!
答案 0 :(得分:1)
如果它在控制台中可以正常运行,而在PyDev中不能,请检查两种情况下您的环境变量是否相同。
即:
for key, val in sorted(os.environ.items()):
print('%s=%s' % (key, val))
同时运行两者,然后将输出保存在不同的文件中,然后进行比较以了解有什么不同。罪魁祸首是LD_LIBRARY_PATH
,PATH
和PYTHONPATH
...
要检查的一件事是从运行事物的同一控制台运行Eclipse(因为它应该继承那些变量)。