質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.52%

  • Python 3.x

    6343questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • CentOS

    2702questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • import

    96questions

    自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

wxPythonのインポート時に発生するエラーについて( cannot open shared object file: No such file or directory)

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 611

fujio

score 2

Python3.6.3,CentOS6を使っています。
今回wxPythonを導入し実際にサンプルコード

import wx
04

application = wx.App()

frame = wx.Frame(None, wx.ID_ANY, u"テストフレーム")
frame.Show()

application.MainLoop()


を実行したところ以下のようなメッセージが表示され実行することができませんでした。

[vagrant@localhost python_lessons]$ python flame.py
Traceback (most recent call last):
  File "flame.py", line 3, in <module>
    import wx
  File "/home/vagrant/.pyenv/versions/3.6.3/lib/python3.6/site-packages/wx/__init__.py", line 17, in <module>
    from wx.core import *
  File "/home/vagrant/.pyenv/versions/3.6.3/lib/python3.6/site-packages/wx/core.py", line 12, in <module>
    from ._core import *
ImportError: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory

解決方法や共有ライブラリの仕組みなどを調べて試してみたのですがうまくいきませんでした。
解決方法があればよろしくお願いします。

(追記)
回答ありがとうございます。
回答に表記さたサイトを参考にして、--enable-sharedによってpythonに共有ライブラリに関するオプションを付与する方法を試してみようと思いました。しかし、pythonを一度アンインストールしてインストールしなおしたのですが以下のようにうまくいきませんでした。

[vagrant@localhost ~]$ env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.6.3
Downloading Python-3.6.3.tar.xz...
-> https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz
error: failed to download Python-3.6.3.tar.xz

BUILD FAILED (CentOS release 6.9 (Final) using python-build 1.1.5-12-ga2d00cb)

いろいろと調べてみたのですが今回は詳しいエラーメッセージが出ておらず、どのように対処すればよいかわかりません。
解決方法があればよろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    退会済みユーザー

    2017/11/03 07:10

    GCCでコンパイルしてインストールしましたか?

    キャンセル

  • fujio

    2017/11/03 16:12

    いいえ、GCCでコンパイルはしていません。

    キャンセル

回答 2

checkベストアンサー

+2

調べ方

困ったらエラーのキーワードで検索します。

数件見ると、どうもインストール時の引数を入れ忘れたか、パスが通っていないっぽいことが分かります。

解決方法

* インストール時の引数を入れ忘れた
githubのgibianskyさんによれば、

The key piece is ImportError: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory. Python built without --enable-shared doesn't have this file, so if this dependency is real (not spurious) then this should be documented somewhere.

ImportError: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory.のキーピースは、Pythonを--enable-sharedなしにビルドするとこのファイルがないことであって(以下略)

この場合の対策)
githubのpc10201さんによれば、env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.6.0でOKだそうですので、Pythonのバージョンを3.6.3に変えればOKっぽいですね。


* ファイルはあるけどパスが通っていない
githubのmahilleb-msftさんによれば、

That it complains about not finding libpython3.6m.so.1.0 definitely looks fishy.

libpython3.6m.so.1.0 が見つからないし、絶対に怪しいように見えるけど、と文句を言っているのです。

この場合の対策)
何種類かやり方があるみたいですので、
StackoverflowのPython executable not finding libpython shared librarypython: error while loading shared libraries: libpython3.4m.so.1.0: cannot open shared object file: No such file or directoryを参考にするとよいと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/03 20:08

    回答ありがとうございます。提示されたサイトを見て一番最初の方法を使ってい解決しようとしたのですがうまくいきませんでした。詳細は質問に追記するので見てもらえると嬉しいです。

    キャンセル

  • 2017/11/03 20:51

    https://www.google.co.jp/search?q=%22BUILD+FAILED%22+%22using+python-build%22+%22CentOS%22
    をサラッと見ると何件か対策が出てきますね。
    多分どっちかでOKです。

    1. 動作のために要求されるファイルをインストール
    https://github.com/pyenv/pyenv/wiki/Common-build-problems

    2. 動作のために要求されるファイルをインストール
    xcode-select --install

    キャンセル

  • 2017/11/04 03:30

    教えてもらったサイトを参照してpython3.6.3のオプション付き(--enable-shared)のインストールは成功しました。ありがとうございます。
    ただwxPythonのほうはpipでインストールしなおそうとするとうまくいきませんでした(以下、エラーコードの一部)。
    configure: WARNING: system expat library not found, will use built-in instead
    checking for GTK+ version...
    checking for pkg-config... /usr/bin/pkg-config
    checking for GTK+ - version >= 3.0.0... no
    *** Could not run GTK+ test program, checking why...
    *** The test program failed to compile or link. See the file config.log for the
    *** exact error that occured. This usually means GTK+ is incorrectly installed.
    configure: error:
    The development files for GTK+ were not found. For GTK+ 2, please
    ensure that pkg-config is in the path and that gtk+-2.0.pc is
    installed. For GTK+ 1.2 please check that gtk-config is in the path,
    and that the version is 1.2.3 or above. Also check that the
    libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
    --libs' are in the LD_LIBRARY_PATH or equivalent.

    Error running configure
    ERROR: failed building wxWidgets
    Traceback (most recent call last):
    File "build.py", line 1269, in cmd_build_wx
    wxbuild.main(wxDir(), build_options)
    File "/tmp/pip-build-wjxmizj8/wxpython/buildtools/build_wxwidgets.py", line 376, in main
    "Error running configure")
    File "/tmp/pip-build-wjxmizj8/wxpython/buildtools/build_wxwidgets.py", line 85, in exitIfError
    raise builder.BuildError(msg)
    buildtools.builder.BuildError: Error running configure
    Finished command: build_wx (0m12.508s)
    Finished command: build (0m12.509s)
    Command '"/home/vagrant/.pyenv/versions/3.6.3/bin/python3.6" -u build.py build' failed with exit code 1.

    ----------------------------------------
    Command "/home/vagrant/.pyenv/versions/3.6.3/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-wjxmizj8/wxpython/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-5j7mgh8s-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-wjxmizj8/wxpython/
    gtkというツールに何か問題があると思い、新しくインストールしたりしたのですがうまくいきませんでした。
    また、yumでwxPythonをインストールすると成功したようにメッセージが出るのですが、import wxを実行するとうまくいかず、どうやら正しくインストールされないみたいです。
    なにか解決方法があればよろしくお願いします。また、うまくいかないようならもうほかのGUIのライブラリを使うことを考えた方がいいですかね?

    キャンセル

  • 2017/11/04 11:17 編集

    > The development files for GTK+ were not found. For GTK+ 2, please
    ensure that pkg-config is in the path and that gtk+-2.0.pc is
    installed.
    とあるので、pkg-configのパスの確認とgtk+-2.0.pcのインストールが必要みたいです(もしかしたらどちらか片方の確認でしょうか)。
    その辺の話はこちらのリンク(https://forums.wxwidgets.org/viewtopic.php?t=34891)にもありますね。David Hartさんもやっぱり"You need to install the libgtk2.0-dev package."と言っています。

    これでよさそうな気がします。


    > For GTK+ 1.2 please check that gtk-config is in the path,
    and that the version is 1.2.3 or above. Also check that the
    libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
    --libs' are in the LD_LIBRARY_PATH or equivalent.
    ダメだったらこっちも確認ですね、

    キャンセル

0

詳しい回答ありがとうございました。
提示されたツールなどのインストールを試してみましたが、うまくいかず行き詰ってしまったのでanacondaをインストールしてみようと思います。
ただ今回の件でpipやyum、UNIXについて様々なことを学べました。
ここまで回答してもらいありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Python 3.x

    6343questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • CentOS

    2702questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • import

    96questions

    自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

  • トップ
  • CentOSに関する質問
  • wxPythonのインポート時に発生するエラーについて( cannot open shared object file: No such file or directory)