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

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

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

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

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Python

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

Q&A

解決済

1回答

863閲覧

bottle を利用したlocalhost への接続について

hiroikawa55

総合スコア26

Bottle

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

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Python

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

0グッド

0クリップ

投稿2019/06/17 12:40

編集2019/06/18 01:03

bottle を利用してサーバサイドに簡単なプログラムをおいて、Webブラウザでアクセスすることを試しています。
こんなようなことです↓
bottle超初歩入門
https://qiita.com/Gen6/items/949babb51d0cc000dcfb

上記のコマンドの実行は、
Ubuntu 18.04.2 LTS で行っています。
ただ、実行の際に「PermissionError」が出てしまうため、「sudo」を頭に付けて、python3で実行をしているため、実行コマンドは下記↓になります。

ubuntu

1$ sudo python3 index.py

実行後には、

ubuntu

1Bottle v0.13-dev server starting up (using WSGIRefServer())... 2Listening on http://localhost:8080/ 3Hit Ctrl-C to quit.

と出ます。
なお、sudoを付けないと、下記のエラーが出ます。

Failed to import the site module Tracebak (most recent call last): File "/usr/lib/python3.6/site.py", line 79, in <module> import os File "/usr/lib/python3.6/os.py", line 57, in <module> import posixpath as pat File "<frozen importlib._boostrap>", line 971, in _find_and_load File "<frozen importlib._boostrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._boostrap>", line 665, in _load_unlocked File "<frozen importlib._boostrap_external>", line 674, in exec_module File "<frozen importlib._boostrap_external>", line 780, in get_code File "<frozen importlib._boostrap_external>", line 832, in get_data PermissionError: [Errno 13] Permission denied: '/usr/lib/python3.6/posixpath.py'

この状態でFirefoxでhttp://localhost:8080/hello/world
にアクセスすると、初回は

127.0.0.1 -- [17/Jun/2019 23:31:02] "GET /hello/world HTTP/1.1" 127.0.0.1 -- [17/Jun/2019 23:31:02] "GET /favicon.ico HTTP/1.1"

と出て、「Hello world!」とちゃんと表示されます。

しかし、1回ctrl + c でquitした後で、もう一度実行すると、

Bottle v0.13-dev server starting up (using WSGIRefServer())... Listening on http://localhost:8080/ Hit Ctrl-C to quit.

と表示されたまま、いつまでも閲覧ができない状態が続きます。
終了の仕方に問題があるのでしょうか・・・・。

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

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

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

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

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

mistn

2019/06/17 13:27

実行しているプログラムはqiitaのものと同じですか?違うのであればソースコードを質問に追記してください。 ブラウザが読み込み中のままとなっているとき、コンソールには何か出力されていませんか?エラーらしきものがあればそれも質問に追記してください。 それと、ubuntuで実行してubuntuのブラウザで閲覧しているのでしょうか。
hiroikawa55

2019/06/17 14:43

ご指摘のこと、ありがとうございます。取り急ぎ、質問への追記を行いました。
hiroikawa55

2019/06/17 14:50

ブラウザのクッキーが残っているからかもしれないと思い、削除してみましたが、結果は同じ(閲覧できない)でした。
mistn

2019/06/17 15:35

内容的に問題があるような箇所はなさそうに思えますね。終了の仕方もそれで問題ないです。 気になる点があるとすればsudoなしで実行するとPermissionErrorになってしまうことですね。PermissionErrorの詳細が知りたいのでログを質問に追記してもらえますか? それとコンソールなどのログは<code>を押して出てくる``` ```の中に書くようにしましょう。見やすくなるので。
hiroikawa55

2019/06/18 01:07

ご指摘ありがとうございます。codeのこと、知りませんでした。確かに見やすくなりますね。 Permission Errorの内容を追記しました。 原因はどうも'/usr/lib/python3.6/posixpath.py'にアクセスできないためのようなのですが・・。
mistn

2019/06/18 03:57

pythonのプログラムの実行、終了にエラーはなさそうですね。PermissionErrorも原因はよくわかりませんが直接影響している感じでもなさそうです。 もっと別の場所に原因があるのかもしれませんね。今のubuntuの環境以外で実行するとどうなりますか?MacでもWindowsでも別のマシンのubuntuでも仮想マシンでもなんでもいいです。
hiroikawa55

2019/06/19 14:48

別のマシンで試すと、普通にできました。 どうやら環境をもう一度、つくりなおした方がよさそうです。 ありがとうございました。
guest

回答1

0

ベストアンサー

根本解決ではありませんがlsofで8080ポートを使用しているプロセスを特定してそのプロセスをkillするのはどうでしょうか?

$ sudo lsof -i :8080 $ sudo kill <プロセスID>

ワンライナーでやるならこんな感じになると思います。

$ sudo kill $(lsof -i :8080 | awk '{print $2}')

投稿2019/06/18 15:25

yuokada

総合スコア550

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

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

hiroikawa55

2019/06/19 14:56

ありがとうございます。killコマンド、試してみたのですが、 閲覧ができない状態のままでした、 普通に考えると、プロセスを終了させればよいので、腑に落ちないのですが・・。いずれにしても、別環境では普通に動くので、環境をつくりなおす方向で考えます。 どうもありがとうございました。
yuokada

2019/06/19 15:09

$ sudo kill -9 <プロセスID> を実行すればほぼすべてのプロセスを停止出来るのでこれも試してみてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問