0

Mac OS X Yosemite で Pycharm 4 と連携するように PyROOT をセットアップしようとしています。

Pythonオプションを有効にしてROOTを(ローカルに)インストールし、必要な環境パスをすべて設定しました。

echo $PYTHONPATH
/Users/natalia/Software/root/lib:/Users/natalia/Software/root/bin:/Users/natalia/Software/root

シェルインタープリターからは問題なく動作します:

python
Python 2.7.6 (default, Sep  9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import ROOT
>>> ROOT.__file__
'/Users/natalia/Software/root/lib/ROOT.pyc'
>>>

Pycharm では、Preferences->Project Interpreter->More->Show paths... を使用して、これらのパスをインタープリターに追加しようとしました。

そこを示すパスは次のとおりです。

file:///Library/Python/2.7/site-packages/pip-6.1.1-py2.7.egg
file:///Users/natalia/Software/root/lib
file:///System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
file:///System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
file:///System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
file:///System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
file:///System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
file:///System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
file:///System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
file:///System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC
file:///Library/Python/2.7/site-packages
file:///Users/natalia/Software/root/bin
file:///Users/natalia/Software/root

Pycharm で次のファイルを作成しました。

import os
os.system("echo $PYTHONPATH")
import ROOT

実行すると、次のように返されます。

Traceback (most recent call last):
/Users/natalia/Software:/Users/natalia/Software/root:/Users/natalia/Work/Projects/untitled
 File "/Users/natalia/Work/Projects/untitled/l.py", line 3, in <module>
    import ROOT
ImportError: No module named ROOT

Pycharm の python から出力されたこの PYTHONPATH には、ROOT.pyc ファイルを実際に含むパス、つまり「/Users/natalia/Software/root/lib」が含まれていないことに注意してください (理由は不明です)。

私も汚いトリックをやってみました

os.system("export PYTHONPATH=$PYTHONPATH:/Users/natalia/Software/root/lib") 

しかし、後で印刷しても実際にはパスが変更されないことがわかりました。

Pycharmがどこからパスを取得するかについて、私は完全に混乱しています。可能な解決策は大歓迎です。

4

1 に答える 1

3

もうお気づきかもしれませんが、念のため…

import sys
sys.path.append('/Applications/Misc/root/lib')
import ROOT
print ROOT.TTimeStamp().AsString()

その検索パスを Python (および拡張子 PyCharm) に追加します。スニペットにより、PyCharm で次の出力が得られます。

/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
/Users/rrios/PycharmProjects/untitled/dummy.py
Thu, 02 Jul 2015 01:07:57 UTC +628998000 nsec

Process finished with exit code 0
于 2015-07-02T01:12:32.783 に答える