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

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

ただいまの
回答率

90.45%

  • Python 3.x

    10306questions

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

  • サーバ

    902questions

    サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

  • WebSocket

    212questions

    WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

  • Bottle

    65questions

    Bottleは、PythonのWebサーバです。1つのPythonファイルで構成されており、非常に軽量。Web APIの作成や導入が簡単で、DjangoやFlaskに比べ使いやすくシンプルなことが特徴です。

共用サーバでのbottle-websocketは可能か

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 578

Jirotech

score 2

 前提・実現したいこと

さくらレンタルサーバのスタンダートプランにて、
サンプルプログラムのexampleに入っているchatプログラムを動かすことはそもそも可能なのでしょうか。

 試したこと・その結果(エラーメッセージ)

sshでサーバに接続し、
%pip3 install gevent
しようとしましたが、失敗しました。

Collecting gevent
  Using cached gevent-1.2.2.tar.gz
Requirement already satisfied: greenlet>=0.4.10 in ./local/python/lib/python3.6/site-packages (from gevent)
Installing collected packages: gevent
  Running setup.py install for gevent ... error
    Complete output from command /home/domain/local/python/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/var/tmp/pip-build-pb4pp2a8/gevent/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-p9nupfbf-record/install-record.txt --single-version-externally-managed --compile:
    /home/domain/local/python/lib/python3.6/distutils/dist.py:261: UserWarning: Unknown distribution option: 'cffi_modules'
      warnings.warn(msg)
(以下省略)

cffiがインストールされてないのが原因と考え、
%pip3 install cffiを行いましたが失敗しました。

Collecting cffi
  Using cached cffi-1.11.4.tar.gz
Requirement already satisfied: pycparser in ./local/python/lib/python3.6/site-packages (from cffi)
Installing collected packages: cffi
  Running setup.py install for cffi ... error
    Complete output from command /home/domain/local/python/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/var/tmp/pip-build-ermpvzi9/cffi/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-d_g93foq-record/install-record.txt --single-version-externally-managed --compile:
    Package libffi was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libffi.pc'
    to the PKG_CONFIG_PATH environment variable
    Package 'libffi', required by 'world', not found

(以下省略)

libffiが存在しないことが原因と考えlibffiを入れようとしましたが、
%pip3 install libffi も %pip3 install libffi-devel も、
could not find と言われてしまいました。

pipに対応していない(pythonではない)と考え%yumを使おうとしましたが、
yum: Command not found と言われてしまいました。
(yumは共用サーバ上では利用できないは?と考えました。)

pip以外の方法でインストールしようと、
まずwindows内にpipでインストールした後、
それをサーバの方のlibにコピー(環境設定等は行えていません)したうえで、
アクセスしてみましたが、エラー500が出ました。

(エラーログ一部抜粋)
  File "/home/domain/local/python/lib/python3.6/site-packages/gevent/core.py", line 12, in <module>: /home/domain/www/bottle-websocket/examples/chat/chat.cgi
    from gevent.libev import corecext as _core: /home/domain/www/bottle-websocket/examples/chat/chat.cgi
ImportError: cannot import name 'corecext': /home/domain/www/bottle-websocket/examples/chat/chat.cgi
 (途中省略)
  File "/home/domain/local/python/lib/python3.6/site-packages/gevent/libev/corecffi.py", line 20, in <module>: 
 /home/domain/www/bottle-websocket/examples/chat/chat.cgi
    import gevent.libev._corecffi as _corecffi # pylint:disable=no-name-in-module: /home/domain/www/bottle-websocket/examples/chat/chat.cgi
ModuleNotFoundError: No module named 'gevent.libev._corecffi': /home/domain/www/bottle-websocket/examples/chat/chat.cgi

geventディレクトリ内のlibevディレクトリ内を見たところ、
corecext.pyxがありました。
調べるとこれはcythonというもので、
もしかして共用サーバではcythonは使用できないのでは・・?という考えに至りました。
(共用サーバでは事前コンパイルが必要な言語は使用できないと聞いた記憶があるので。)
(ちなみに%pip3 install Cythonはできています。)

諦めてVPSサーバを借りるしかないのでしょうか。
(予算的に厳しいのです・・。)

 補足情報(FW/ツールのバージョンなど)

python3.6
pip9.0.1

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 2

+1

まず、さくらのレンタルサーバーでは、負荷の高いプログラムや連続稼働するプログラムの実行は利用規約で禁止されていますので、動いたとしても数分から数十分で、停止されると思います。

また、さくらのレンタルサーバーに標準でインストールされていないライブラリは、基本的にソースコードからコンパイルしてホームディレクトリにインストールしますが、インストールしたディレクトリをLD_LIBRARY_PATH に設定しておく必要があります。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

0

キャッシュが悪さしてそうな気がするので、次のオプション入りで試してみてください。

%pip3 install --no-cache-dir -I gevent

https://qiita.com/tototoshi/items/7b74fe26eb7bf39be7b5

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/02/23 22:48

    解答ありがとうございます。
    変化はしましたがダメでした・・・。

    ```
    % pip3 install --no-cache-dir -I gevent
    Collecting gevent
    Downloading gevent-1.2.2.tar.gz (3.1MB)
    100% |################################| 3.1MB 20.6MB/s
    Collecting greenlet>=0.4.10 (from gevent)
    Downloading greenlet-0.4.13.tar.gz (58kB)
    100% |################################| 61kB 22.6MB/s
    Installing collected packages: greenlet, gevent
    Running setup.py install for greenlet ... done
    Running setup.py install for gevent ... error
    Complete output from command /home/domain/local/python/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/var/tmp/pip-build-1x967xtf/gevent/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-l5kidl0d-record/install-record.txt --single-version-externally-managed --compile:
    /home/domain/local/python/lib/python3.6/distutils/dist.py:261: UserWarning: Unknown distribution option: 'cffi_modules'
    warnings.warn(msg)
    (以下省略)
    ```

    キャンセル

  • 2018/02/23 22:52

    pip3 install -U setuptoolsを先にやったほうがいいかもしれません。効果ないかもしれませんが。

    キャンセル

  • 2018/02/23 23:24

    ダメでした・・(既に試していたようです)
    Requirement already up-to-date: setuptools in /home/domain/local/python/lib/python3.6/site-packages

    キャンセル

  • 2018/02/23 23:54

    そうすると最初に当たりを付けていたcffiですかね。https://github.com/Kozea/cairocffi/issues/14

    キャンセル

  • 2018/02/23 23:56

    sudo apt-get install -y python3-cffi
    pip3 install --upgrade cffi
    export PKG_CONFIG_PATH=xxx (osxの情報ですが -> https://stackoverflow.com/questions/22875270/error-installing-bcrypt-with-pip-on-os-x-cant-find-ffi-h-libffi-is-installed/25854749#25854749)

    キャンセル

  • 2018/02/24 00:00

    sudoですがPermision deniedと言われてしまいます。
    共用サーバであるため、管理者権限がないことが原因と考えています。
    (あらかじめ記述しておくのを忘れていました。申し訳ないです。)

    キャンセル

  • 2018/02/24 00:01

    sudo抜いて叩いても・・・ダメですよね。

    キャンセル

  • 2018/02/24 00:04

    apt-get : Command not foundだそうです・・・。

    キャンセル

  • 2018/02/24 00:06

    あまり経験がないお話だったので、すみませんでした。CHERRYさんのご回答を参考にしてくださいまし。

    キャンセル

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

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

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

  • Python 3.x

    10306questions

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

  • サーバ

    902questions

    サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

  • WebSocket

    212questions

    WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

  • Bottle

    65questions

    Bottleは、PythonのWebサーバです。1つのPythonファイルで構成されており、非常に軽量。Web APIの作成や導入が簡単で、DjangoやFlaskに比べ使いやすくシンプルなことが特徴です。