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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Framework

Frameworkは、アプリケーションソフトを開発する際に、一般的な機能をより簡単に、より早く完了させる事を目的とした、ソフトウェアやライブラリのセットを指します。開発にフレームワークを使用する事で、追加で必要となる機能だけを開発するだけで済む為、開発効率の向上が見込めます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1235閲覧

pythonのフレームワーク"tornado"で、動作確認時、エラーが生じる

sakuramob

総合スコア16

Framework

Frameworkは、アプリケーションソフトを開発する際に、一般的な機能をより簡単に、より早く完了させる事を目的とした、ソフトウェアやライブラリのセットを指します。開発にフレームワークを使用する事で、追加で必要となる機能だけを開発するだけで済む為、開発効率の向上が見込めます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/10/10 07:54

python初心者です。

実行条件

  • ubuntu 18.04
  • python 2.7
  • python 3.7

下記コマンドを実行後、

$ pyenv install 3.7.0 $ pyenv global 3.7.0 $ pyenv local 3.7.0 $ python -V 3.7.0

このサイトのサンプルファイルをtornadoディレクトリ配下にserver.pyというファイル名で作成し、python server.pyを実行したところ、下記のエラーが表示されました。

Traceback (most recent call last): File "server.py", line 1, in <module> import tornado.ioloop File "/home/.pyenv/versions/3.7.0/lib/python3.7/site-packages/tornado/ioloop.py", line 52, in <module> from tornado.concurrent import Future, is_future, chain_future, future_set_exc_info, future_add_done_callback # noqa: E501 File "/home/.pyenv/versions/3.7.0/lib/python3.7/site-packages/tornado/concurrent.py", line 43, in <module> from concurrent import futures File "/home/.pyenv/versions/3.7.0/lib/python3.7/site-packages/tornado/concurrent.py", line 60, in <module> _GC_CYCLE_FINALIZERS = (platform.python_implementation() == 'CPython' and AttributeError: module 'platform' has no attribute 'python_implementation'

platformディレクトリ配下にpython_implementationがないということだと思うのですが、どうしたらいいかわかりません。
どなたかご教授いただきたいです。よろしくお願いいたします。

尚、python2とpython3の両方で試したのですが、どちらも同じエラーが表示されました。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

Windows System for Linuxのubuntu環境ではダメだったため、centOSで実行したら、動きました。
直接的な解決はしていませんが、環境も一因だったみたいです。

投稿2018/10/13 11:04

sakuramob

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

AttributeError: 'module' object has no attribute 'python_implementation' · Issue #2376 · requests/requests · GitHub

  • 念の為バージョンを確認してください
  • platform.pyとかplatformというディレクトリを作っていたら名前を変えてください。標準モジュールのplatformの代わりに読み込まれてしまいます

投稿2018/10/10 08:08

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2018/10/10 08:09

回答書いてから見直したらrequestsのissueだった・・・けどまあいいか
sakuramob

2018/10/10 08:37

ご回答ありがとうございます! 再度バージョン確認しましたが、3.7.0でした。 python -V Python 3.7.0 現状、platformというディレクトリは、もともとtornadoに入っている標準ライブラリのディレクトリ以外はありません。
hayataka2049

2018/10/10 08:49

ここで呼ばれているplatformはpython自体の標準モジュールです。そうか、tornadeにもあるのか >tornadoディレクトリ配下に が恐らく原因です。インポートパスにtornadeディレクトリが追加され、標準モジュールより優先的に(tornade配下の)platformがimportされてしまいます。 他のところにserver.pyを置いてください。
hayataka2049

2018/10/10 08:50

3.7.0/lib/以下のような場所はインストールされたライブラリなどが入るところで、ユーザーのプログラムを置くところではありません
sakuramob

2018/10/10 08:57

ご回答ありがとうございます! tornado配下でないところにserver.pyを配置して、実行すると、何も出ずに終了してしまいます。 何か特別な設定が必要なのでしょうか。 たびたびの質問となってしまい申し訳ないです。
hayataka2049

2018/10/10 09:08

何も出ずに終了する、なら正常終了しているのでは? でも終了しちゃうのは困りますね。動いている間にlocalhost:8888にアクセスすればhello worldできるのだと思いますが 私はこのフレームワーク自体には詳しくないので、ご自身で調べてみてください
sakuramob

2018/10/10 10:43

そうなんです。デバッグしても何も表示されないので、そもそも処理通ってなさそうなんですよね。 お忙しいところご丁寧な回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問