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

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

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

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

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

Q&A

0回答

508閲覧

windows10 pro 上で Python HTTPサーバーが動かない

Big-Papa

総合スコア5

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

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

0グッド

0クリップ

投稿2020/03/17 12:13

編集2020/03/18 01:38

前提・実現したいこと

windows10pro にて Visual Studio 2019を使用し python によるHTTPサーバー動作を確認しようとしています。
試しに以下のコードを実施したところ python2.7 と python3.7 では結果が異なります。
python2.7 はメッセージが出ますがそのまま継続します。
python3.7 はメッセージが出た後例外に飛び終了となります。

どちらも「文字コード 0x93 がエンコードできないよ」と言われていますが、理由が不明です。

どうにかして python 3.7 で動かしたいのでご教授願います。

発生している問題・エラーメッセージ

<python2.7>
Traceback (most recent call last):
File "c:\program files (x86)\microsoft visual studio\2019\professional\common7\ide\extensions\microsoft\python\core\Packages\ptvsd_vendored\pydevd_pydevd_bundle\pydevd_trace_dispatch_regular.py", line 440, in call
file_type = py_db.get_file_type(frame, abs_path_real_path_and_base) # we don't want to debug threading or anything related to pydevd
File "c:\program files (x86)\microsoft visual studio\2019\professional\common7\ide\extensions\microsoft\python\core\Packages\ptvsd_vendored\pydevd\pydevd.py", line 705, in get_file_type
if self.dont_trace_external_files(abs_real_path_and_basename[0]):
File "c:\program files (x86)\microsoft visual studio\2019\professional\common7\ide\extensions\microsoft\python\core\Packages\ptvsd_vendored\pydevd_pydevd_bundle\pydevd_api.py", line 758, in custom_dont_trace_external_files
return abs_path.startswith(start_patterns) or abs_path.endswith(end_patterns)
UnicodeDecodeError: 'ascii' codec can't decode byte 0x93 in position 9: ordinal not in range(128)

<python3> Traceback (most recent call last): File "C:\Users****\source\repos\HTTPserver_test\HTTPserver_test\HTTPserver_test.py", line 39, in <module> server.test() File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_86\lib\http\server.py", line 1230, in test with ServerClass(server_address, HandlerClass) as httpd: File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_86\lib\socketserver.py", line 452, in __init__ self.server_bind() File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_86\lib\http\server.py", line 139, in server_bind self.server_name = socket.getfqdn(host) File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_86\lib\socket.py", line 676, in getfqdn hostname, aliases, ipaddrs = gethostbyaddr(name) UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte

該当のソースコード

try:
import SimpleHTTPServer as server
except:
import http.server as server

try:
server.test()
except:
import traceback
traceback.print_exc()

試したこと

ソケット通信は python2.7、python3.7 共に動作しました。

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

windows10pro
Visual Studio 2019 pro
Python 2.7(32-bit)
Python 3.7(32-bit)

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

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

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

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

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

argparse

2020/03/17 13:41

コードは「# を全角にする」というような対応ではなく、全体を <code> ボタンを押したときに得られるような「トリプルバッククォート」で囲ってください。 また原因ですが、お使いのコンピュータのユーザ名およびコンピュータ名に日本語を使用していることが原因のように見受けられますが、如何でしょうか。もしそうなのであれば、 Python 2.7 でのエラーはパスに含まれるユーザ名が、 Python 3.7 でのエラーはコンピュータ名が悪さをしていると考えられるため、例えば前者は C:\sources などの日本語を含まないパスで実行することで改善する可能性が御座います。後者に関しては、どうもコンピュータ名を変更する以外に方法が思い当たりませんでした。
Big-Papa

2020/03/18 01:34

argparse様 ご回答ありがとうございます。 コンピューター名を半角英数字に変更したところ Python 2.7 及び Python 3.7 共に正常に動きました。 ご教授ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問