2017-07-05 10 views
0

基本的には、IBM SPSSで開く準備ができた.savファイルを作成するために、savReaderWriterモジュールからPythonコードを実行しようとしています。ライブラリ(dylib)がロードされていない - イメージが見つかりません - Python IDE

echo 'export DYLD_LIBRARY_PATH=/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/spssio/macos' >> ~/.bash_profile 
echo 'export LC_ALL=en_US.UTF-8' >> ~/.bash_profile 

あなたは、私はPythonで実行しようとしているコードの一部見ることができます以下:

import savReaderWriter 

savFileName = "someFile.sav" 
records = [['Test1', 1, 1], ['Test2', 2, 1]] 
varNames = ['var1', 'v2', 'v3'] 
varTypes = {'var1': 5, 'v2': 0, 'v3': 0} 
with savReaderWriter.SavWriter(savFileName, varNames, varTypes, ioUtf8=True) as writer: 
    for record in records: 
     writer.writerow(record) 
をMacOSのユーザーとして、私は最初のモジュールが動作するための端末でこれらの2つの行を実行するために必要な

私の問題は、Pythonでterminal.appを通してコードを実行すると、チャームのように動作し、新しい.savファイルが現われ、IDE(PyCharmとSpyderを試してみました)で非常に同じコードを実行しようとするとエラーが発生します:

Traceback (most recent call last): 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2847, in run_code 
    exec(code_obj, self.user_global_ns, self.user_ns) 
    File "<ipython-input-2-94007b092d47>", line 7, in <module> 
    with savReaderWriter.SavWriter(savFileName, varNames, varTypes, ioUtf8=True) as writer: 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/savWriter.py", line 198, in __init__ 
    super(Header, self).__init__(savFileName, ioUtf8, ioLocale) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/generic.py", line 29, in __init__ 
    self.spssio = self.loadLibrary() 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/generic.py", line 117, in loadLibrary 
    spssio = self._loadLibs("macos") 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/generic.py", line 89, in _loadLibs 
    return [load(os.path.join(path, lib)) for lib in libs][-1] 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/generic.py", line 89, in <listcomp> 
    return [load(os.path.join(path, lib)) for lib in libs][-1] 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ctypes/__init__.py", line 348, in __init__ 
    self._handle = _dlopen(self._name, mode) 
OSError: dlopen(/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/spssio/macos/libicuuc48.1.dylib, 6): Library not loaded: @executable_path/../lib/libicudata48.1.dylib 
    Referenced from: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/spssio/macos/libicuuc48.1.dylib 
    Reason: image not found 

モジュールの作者がこの問題について私を助けてくれなかったので、私はこのコミュニティからの提案を非常にうれしく思っています。

EDIT(追加のsys.path):端末から

:IDEから

['', 
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', 
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6', 
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload', 
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages', 
'/Users/mg/mne-python'] 

['/Applications/PyCharm.app/Contents/helpers/pydev', 
'/Users/mg/Documents/Python/Projects/MD', 
'/Applications/PyCharm.app/Contents/helpers/pydev', 
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', 
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6', 
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload', 
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages', 
'/Users/mg/mne-python', 
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/IPython/extensions', 
'/Users/mg/Documents/Python/Projects/MD'] 

よろしく、

MG

答えて

0

解決策を見つけました!だから、理論的に言えば、

sudo ln -s /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/spssio/macos/libicudata48.1.dylib /usr/local/lib/libicudata48.1.dylib 
sudo ln -s /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/spssio/macos/libicui18n48.1.dylib /usr/local/lib/libicui18n48.1.dylib 
sudo ln -s /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/spssio/macos/libspssdio.dylib /usr/local/lib/libspssdio.dylib 
sudo ln -s /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/spssio/macos/libzlib123spss.dylib /usr/local/lib/libzlib123spss.dylib 

sudo ln -s /path/to/original /path/to/symbiotic/link 

よろしく、

MG

は基本的に私は以下の共生エラーに登場したすべてのdylibへのリンク、例を作成するために必要

0

私はないですMacの人あなたは本当にPython 3.6を使用していますか? savReaderWriterはそのバージョンをサポートしていますか?私はそれが使用するI/Oモジュールがそのバージョン用に構築されているのではないかと疑う。

これはTerminalではなくIDEで動作する場合、Pythonの検索パスが同じであることを確認してください。

+0

v3.6はサポートしていませんが、少なくとも私のために働きます(少なくとも端末で)。ターミナルに表示されるすべての検索パスは、IDEでも表示されます。 –

+0

同じ順序ですか?奇妙な。 – JKP

+0

sys.path出力を追加しました –

関連する問題