Jupyter (IPython) notebook numpy/pandas/matplotlib 错误 (FreeBSD)
Jupyter (IPython) notebook numpy/pandas/matplotlib error (FreeBSD)
我正在尝试在家里设置一个 Jupyter 笔记本服务器。这花了我很长时间,但我已经成功地从 FreeBSD 端口构建并安装了 Python 3.4 和所有必需的软件包。笔记本服务器已启动并且 运行 正常,除了每次我尝试导入 numpy 时:
In[1]: import numpy
出现以下错误:
ImportError Traceback (most recent call last)
<ipython-input-1-5a0bd626bb1d> in <module>()
----> 1 import numpy
/usr/local/lib/python3.4/site-packages/numpy/__init__.py in <module>()
178 return loader(*packages, **options)
179
--> 180 from . import add_newdocs
181 __all__ = ['add_newdocs',
182 'ModuleDeprecationWarning',
/usr/local/lib/python3.4/site-packages/numpy/add_newdocs.py in <module>()
11 from __future__ import division, absolute_import, print_function
12
---> 13 from numpy.lib import add_newdoc
14
15 ###############################################################################
/usr/local/lib/python3.4/site-packages/numpy/lib/__init__.py in <module>()
6 from numpy.version import version as __version__
7
----> 8 from .type_check import *
9 from .index_tricks import *
10 from .function_base import *
/usr/local/lib/python3.4/site-packages/numpy/lib/type_check.py in <module>()
9 'common_type']
10
---> 11 import numpy.core.numeric as _nx
12 from numpy.core.numeric import asarray, asanyarray, array, isnan, \
13 obj2sctype, zeros
/usr/local/lib/python3.4/site-packages/numpy/core/__init__.py in <module>()
12 os.environ[envkey] = '1'
13 env_added.append(envkey)
---> 14 from . import multiarray
15 for envkey in env_added:
16 del os.environ[envkey]
ImportError: /lib/libgcc_s.so.1: version GCC_4.6.0 required by /usr/local/lib/gcc48/libgfortran.so.3 not found
导入pandas和matplotlib的错误信息不同,但我怀疑与这个numpy导入错误有关。
奇怪的是,所有 3 个包在 Python 和 IPython 控制台上都可以正常工作,完全没有问题!
我用谷歌搜索并进行了以下尝试:
delete and reinstall numpy -> no change
append numpy directory to sys.path -> no change
install a lot of other external packages just to see if it's only related to numpy -> they are all working fine in both consoles and notebook, except scipy giving some error related to numpy
感谢您的帮助!
问题不在于您的 python 模块。底部的错误消息 ImportError: /lib/libgcc_s.so.1: version GCC_4.6.0 required by /usr/local/lib/gcc48/libgfortran.so.3 not found
表示这是 Fortran 库的依赖性错误。显然它需要 gcc 4.6 或更高版本,显然您安装了较低版本。不熟悉 Python 库或您的设置,我猜测这可能是 /usr/ports/devel/py-fortran
的问题。我建议用 gcc -v
检查你机器上的 gcc 版本,以及用 pkg info
安装的任何与 fortran 相关的端口,然后从那里获取它。
我的gcc版本是4.2.1。
我通过将 LD_LBRARY_PATH 设置为 /usr/local/lib/gcc48 来解决这个问题。 gcc48 已经安装在我的系统中。
为了避免每次都设置路径,我将以下行添加到 /.cshrc:
setenv LD_LIBRARY_PATH /usr/local/lib/gcc48
编辑:
如果您想通过添加到 crontab 来自动启动笔记本服务器,这将不起作用:
@reboot /usr/local/bin/jupyter-notebook
尝试导入 numpy 和依赖于 numpy 的模块时出现相同的错误
我通过复制 /usr/local/bin/jupyter-notebook 并添加了以下行来修复此问题:
import sys
import re
----------------- add these 2 lines below --------------
import os
os.environ['LD_LIBRARY_PATH'] = '/usr/local/lib/gcc48'
....
将新文件添加到 crontab 而不是 jupyter-notebook。
我正在尝试在家里设置一个 Jupyter 笔记本服务器。这花了我很长时间,但我已经成功地从 FreeBSD 端口构建并安装了 Python 3.4 和所有必需的软件包。笔记本服务器已启动并且 运行 正常,除了每次我尝试导入 numpy 时:
In[1]: import numpy
出现以下错误:
ImportError Traceback (most recent call last)
<ipython-input-1-5a0bd626bb1d> in <module>()
----> 1 import numpy
/usr/local/lib/python3.4/site-packages/numpy/__init__.py in <module>()
178 return loader(*packages, **options)
179
--> 180 from . import add_newdocs
181 __all__ = ['add_newdocs',
182 'ModuleDeprecationWarning',
/usr/local/lib/python3.4/site-packages/numpy/add_newdocs.py in <module>()
11 from __future__ import division, absolute_import, print_function
12
---> 13 from numpy.lib import add_newdoc
14
15 ###############################################################################
/usr/local/lib/python3.4/site-packages/numpy/lib/__init__.py in <module>()
6 from numpy.version import version as __version__
7
----> 8 from .type_check import *
9 from .index_tricks import *
10 from .function_base import *
/usr/local/lib/python3.4/site-packages/numpy/lib/type_check.py in <module>()
9 'common_type']
10
---> 11 import numpy.core.numeric as _nx
12 from numpy.core.numeric import asarray, asanyarray, array, isnan, \
13 obj2sctype, zeros
/usr/local/lib/python3.4/site-packages/numpy/core/__init__.py in <module>()
12 os.environ[envkey] = '1'
13 env_added.append(envkey)
---> 14 from . import multiarray
15 for envkey in env_added:
16 del os.environ[envkey]
ImportError: /lib/libgcc_s.so.1: version GCC_4.6.0 required by /usr/local/lib/gcc48/libgfortran.so.3 not found
导入pandas和matplotlib的错误信息不同,但我怀疑与这个numpy导入错误有关。
奇怪的是,所有 3 个包在 Python 和 IPython 控制台上都可以正常工作,完全没有问题! 我用谷歌搜索并进行了以下尝试:
delete and reinstall numpy -> no change
append numpy directory to sys.path -> no change
install a lot of other external packages just to see if it's only related to numpy -> they are all working fine in both consoles and notebook, except scipy giving some error related to numpy
感谢您的帮助!
问题不在于您的 python 模块。底部的错误消息 ImportError: /lib/libgcc_s.so.1: version GCC_4.6.0 required by /usr/local/lib/gcc48/libgfortran.so.3 not found
表示这是 Fortran 库的依赖性错误。显然它需要 gcc 4.6 或更高版本,显然您安装了较低版本。不熟悉 Python 库或您的设置,我猜测这可能是 /usr/ports/devel/py-fortran
的问题。我建议用 gcc -v
检查你机器上的 gcc 版本,以及用 pkg info
安装的任何与 fortran 相关的端口,然后从那里获取它。
我的gcc版本是4.2.1。 我通过将 LD_LBRARY_PATH 设置为 /usr/local/lib/gcc48 来解决这个问题。 gcc48 已经安装在我的系统中。 为了避免每次都设置路径,我将以下行添加到 /.cshrc:
setenv LD_LIBRARY_PATH /usr/local/lib/gcc48
编辑: 如果您想通过添加到 crontab 来自动启动笔记本服务器,这将不起作用:
@reboot /usr/local/bin/jupyter-notebook
尝试导入 numpy 和依赖于 numpy 的模块时出现相同的错误
我通过复制 /usr/local/bin/jupyter-notebook 并添加了以下行来修复此问题:
import sys
import re
----------------- add these 2 lines below --------------
import os
os.environ['LD_LIBRARY_PATH'] = '/usr/local/lib/gcc48'
....
将新文件添加到 crontab 而不是 jupyter-notebook。