前提・実現したいこと
pythonのグラフニューラルネット用ライブラリdglをjupyter notebook上でimportしようとしましたところ、エラーが発生しました。
どうやらパスが通っていないのですが、.bash_profileに何を書き込めばいいのかわからず困っています。
dglはconda installしたばかりでまだ一度も正常に使えたことはありません(急に使えなくなったわけではありません)。
OSはmacOS High Sierra ver.10.13.6です。
.bash_profileに何を書き込めばいいのか、教えていただけないでしょうか。何卒よろしくお願いいたします。
発生している問題・エラーメッセージ
Using backend: pytorch --------------------------------------------------------------------------- OSError Traceback (most recent call last) <ipython-input-2-fd726d2cda90> in <module> ----> 1 import dgl ~/opt/anaconda3/lib/python3.7/site-packages/dgl/__init__.py in <module> 6 # Need to ensure that the backend framework is imported before load dgl libs, 7 # otherwise weird cuda problem happens ----> 8 from .backend import load_backend, backend_name 9 10 from . import function ~/opt/anaconda3/lib/python3.7/site-packages/dgl/backend/__init__.py in <module> 72 73 ---> 74 load_backend(get_preferred_backend()) 75 76 ~/opt/anaconda3/lib/python3.7/site-packages/dgl/backend/__init__.py in load_backend(mod_name) 22 def load_backend(mod_name): 23 print('Using backend: %s' % mod_name, file=sys.stderr) ---> 24 mod = importlib.import_module('.%s' % mod_name, __name__) 25 thismod = sys.modules[__name__] 26 for api in backend.__dict__.keys(): ~/opt/anaconda3/lib/python3.7/importlib/__init__.py in import_module(name, package) 125 break 126 level += 1 --> 127 return _bootstrap._gcd_import(name[level:], package, level) 128 129 ~/opt/anaconda3/lib/python3.7/site-packages/dgl/backend/pytorch/__init__.py in <module> ----> 1 from .tensor import * ~/opt/anaconda3/lib/python3.7/site-packages/dgl/backend/pytorch/tensor.py in <module> 8 from torch.utils import dlpack 9 ---> 10 from ... import ndarray as nd 11 from ... import kernel as K 12 from ...function.base import TargetCode ~/opt/anaconda3/lib/python3.7/site-packages/dgl/ndarray.py in <module> 12 import numpy as _np 13 ---> 14 from ._ffi.object import register_object, ObjectBase 15 from ._ffi.function import _init_api 16 from ._ffi.ndarray import DGLContext, DGLType, NDArrayBase ~/opt/anaconda3/lib/python3.7/site-packages/dgl/_ffi/object.py in <module> 6 import sys 7 from .. import _api_internal ----> 8 from .object_generic import ObjectGeneric, convert_to_object 9 from .base import _LIB, check_call, c_str, py_str, _FFI_MODE 10 ~/opt/anaconda3/lib/python3.7/site-packages/dgl/_ffi/object_generic.py in <module> 5 from numbers import Number, Integral 6 from .. import _api_internal ----> 7 from .base import string_types 8 9 # Object base class ~/opt/anaconda3/lib/python3.7/site-packages/dgl/_ffi/base.py in <module> 40 __version__ = libinfo.__version__ 41 # library instance of nnvm ---> 42 _LIB, _LIB_NAME = _load_lib() 43 44 # The FFI mode of DGL ~/opt/anaconda3/lib/python3.7/site-packages/dgl/_ffi/base.py in _load_lib() 32 """Load libary by searching possible path.""" 33 lib_path = libinfo.find_lib_path() ---> 34 lib = ctypes.CDLL(lib_path[0], ctypes.RTLD_GLOBAL) 35 # DMatrix functions 36 lib.DGLGetLastError.restype = ctypes.c_char_p ~/opt/anaconda3/lib/python3.7/ctypes/__init__.py in __init__(self, name, mode, handle, use_errno, use_last_error) 362 363 if handle is None: --> 364 self._handle = _dlopen(self._name, mode) 365 else: 366 self._handle = handle OSError: dlopen(/Users/admin/opt/anaconda3/lib/python3.7/site-packages/dgl/libdgl.dylib, 10): Symbol not found: ____chkstk_darwin Referenced from: /Users/admin/opt/anaconda3/lib/python3.7/site-packages/dgl/libdgl.dylib (which was built for Mac OS X 10.15) Expected in: /usr/lib/libSystem.B.dylib in /Users/admin/opt/anaconda3/lib/python3.7/site-packages/dgl/libdgl.dylib
該当のソースコード
python
1import dgl
試したこと
エラーメッセージを見ると、どうやら"/usr/lib/libSystem.B.dylib"に欲しいファイルがあるようです。実際に/usr/lib/へ行くとlibSystem.B.dylibというファイルが存在しました。
そして、こういう場合はパスが通っていないので、.bash_profileにPATHを書き込まないといけないのかなと考え、.bash_profileに
bash
1export PATH="/usr/lib:$PATH"
とテキストエディタより書き込み、保存して
terminal
1$ source ~/.bash_profile
しました。
terminal
1$ echo $PATH
を実行して/usr/libが出力に存在することを確認したのち、もう一度jupyter notebookよりimport dglを行ったのですが、同様のエラーが出てしまいました。
.bash_profileに何を書き込めば良いのでしょうか。
回答いただいたことを参考に試したこと
######1.PATH→PYTHONPATHに書き換え
bash
1export PYTHONPATH="/usr/lib:$PYTHONPATH"
とテキストエディタより書き込み、保存して
terminal
1$ source ~/.bash_profile
しました。
terminal
1$ echo $PYTHONPATH
を実行して/usr/libが出力に存在することを確認したのち、もう一度jupyter notebookよりimport dglを行ったのですが、同様のエラーが出てしまいました。
######2.sys.path.append("/usr/lib/")
python
1import sys 2sys.path.append("/usr/lib/")
を実行し、import dglを行ったのですが、同様のエラーが発生しました。
ライブラリdglのインストール方法に関する追記
dglの公式documentationを参考に、
terminal
1$ conda install -c dglteam dgl
としました。
出力は以下のようでした。
Collecting package metadata (current_repodata.json): done Solving environment: / The environment is inconsistent, please check the package plan carefully The following packages are causing the inconsistency: - defaults/osx-64::spyder==4.0.1=py37_0 - defaults/noarch::sphinx==2.4.0=py_0 - defaults/noarch::numpydoc==0.9.2=py_0 - defaults/osx-64::anaconda==2020.02=py37_0 done ## Package Plan ## environment location: /Users/admin/opt/anaconda3 added / updated specs: - dgl The following packages will be downloaded: package | build ---------------------------|----------------- dgl-0.4.3post2 | py37_0 2.8 MB dglteam docutils-0.16 | py37_1 667 KB ------------------------------------------------------------ Total: 3.5 MB The following NEW packages will be INSTALLED: _anaconda_depends pkgs/main/osx-64::_anaconda_depends-2020.02-py37_0 dgl dglteam/osx-64::dgl-0.4.3post2-py37_0 docutils pkgs/main/osx-64::docutils-0.16-py37_1 The following packages will be UPDATED: certifi 2019.11.28-py37_0 --> 2020.4.5.1-py37_0 openssl 1.1.1d-h1de35cc_4 --> 1.1.1g-h1de35cc_0 The following packages will be DOWNGRADED: anaconda 2020.02-py37_0 --> custom-py37_1 Proceed ([y]/n)? y Downloading and Extracting Packages dgl-0.4.3post2 | 2.8 MB | ##################################### | 100% docutils-0.16 | 667 KB | ##################################### | 100% Preparing transaction: done Verifying transaction: done Executing transaction: done
補足情報(FW/ツールのバージョンなど)
OS:macOS High Sierra ver.10.13.6
Pythonのバージョン:3.7
Anacondaのバージョン:4.8.3
Pytorchのバージョン:1.5.0
dglのバージョン:0.4.3
.bash_profileの存在するパス:/Users/admin/.bash_profile
回答2件
あなたの回答
tips
プレビュー