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

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

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

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

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

Q&A

解決済

4回答

6308閲覧

PowerSellからpythonプログラムを実行しても日本語だけ出力されない

chida3

総合スコア15

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

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

0グッド

1クリップ

投稿2017/10/22 12:41

編集2017/10/29 08:20

10/29
Docker Quickstart Terminalからコンテナを作成・実行した場合は、日本語も含めて表示することができました(その際の手順は最下記)。
KitematicからEXECをクリックして立ち上がるWindows Power Shellでは依然として同様の現象が発生しているため、引き続き回答を求めております。

Python超初心者です。
吉谷愛『土日でわかるPythonプログラミング教室』を読みながら勉強中ですが、初歩で詰まってしまいました。

環境
OS:Windows8.1 Pro
※上記の書籍にしたがい、下記を開発環境として準備。
・Docker
・Kitematic

#現象と質問
『土日でわかるPythonプログラミング教室』p50以降で、hello worldプログラムを作成するという簡単な課題があります。

【hello.py】

python

1print("土日で分かるpython教室")

上記のプログラムをターミナルから実行したのですが、下図のように、半角英数字のみ出力され、日本語部分だけ出力されません。
実行結果

どのようにすれば、日本語部分も出力されるようになるのでしょうか?
(ネットで調べてみたりもしたのですが、文字化けの報告はありましたが、「全く表示されない」という事例が見つけられなかったので……)

Python、Dockerともに全くの初心者であるため、調査不足・情報提示不足でしたらご指摘いただけますと幸いです。
よろしくお願いいたします。

#ここまでの手順
本書の内容に沿ってここまでやった内容を記載します。
「ここもっと詳しく」などありましたら、ご指摘ください。

※注意
下記手順01の「Docker Toolboxのインストール」ですが、当初本書記載通りでなく、E:\Docker Toolboxにインストールしました。
ただ、そのときも同様の事象が発生したため、いったんアンインストールし、再度下記手順をやり直しています。
どこまで関連性があるのかわかりませんが、念のため追記しておきます。

事前確認)仮想化機能が有効になっているか確認
⇒OK

01)Docker Toolboxのインストール
①下記よりインストーラダウンロード
https://www.docker.com/products/docker-toolbox
②下記に「Full installation」を選択してインストール
C:\Program Files\Docker Toolbox
③DockerクライアントとしてKitematicを起動
⇒インストール完了、Kitematicも起動確認

02)Pythonプログラミング環境の構築
①Kitematicを使用して、あらかじめ用意された開発環境イメージからコンテナ生成
・Docker開発環境イメージ名:pythonver2
・ローカルのフォルダ名:donichipython(C:\Users[ユーザ名]\donichipython)
・コンテナのフォルダ名:donichiconpython
Kitematicより「Docker CLI」をクリックして出現するターミナルで下記を入力。

# docker create -it -p 80:80 -v /c/Users/[ユーザ名]/donichipython/:/root/donichiconpython --name donichicon donichi/pythonver2

⇒Kitematic画面にて、donichiconコンテナ生成を確認。マウントも確認。
②コンテナに接続する
⇒Kitematicからターミナル起動を確認。
③Webサーバを立ち上げてみる
(今回の質問と直接関連しないと思われるため、手順割愛)
⇒Webサーバの立ち上げ確認済。

03)Pythonプログラムの作成と実行
①下記にソースコード配置
C:\Users[ユーザ名]\donichipython\hello.py
②下記コマンドを実行

  # source ~/.bash_profile   # python --version     (versionは3.5.2になります)   # cd donichiconpython   # python hello.py

#コンテナの各種設定
Kitematicから確認できるコンテナの設定について追記しておきます。

Volumes
C:\Users[ユーザ名]\donichipython

General
環境変数
no_proxy=*.local, 169.254/16, 127.0.0.1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LANG=ja_JP.UTF-8

#Docker Quickstart Terminalでの実行
①Docker Quickstart Terminal起動

②SSHでアクセス

$ docker-machine ssh default

⇒Moby Dockの絵

③下記コマンドを実行

docker@default:~$ docker run -it --rm -v /c/Users/[ユーザ名]/donichipython/:/root/donichiconpython donichi/pythonver2 [root@396d85466473 ~]# source ~/.bash_profile [root@396d85466473 ~]# python --version Python 3.5.2 [root@396d85466473 ~]# cd donichiconpython [root@396d85466473 donichiconpython]# python hello.py

⇒「土日でわかるpython教室」と出力
(なお、文字コード関連のエラーが出たため、hello.pyの冒頭に「#coding:utf-8」を入れました)

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

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

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

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

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

shimizukawa

2017/10/22 13:13

手元のWindowsで確認してみましたが、日本語含めて表示出来ました。使用したのはWindows10, PowerShell, Docker for Win, python:3.6.1 コンテナです。その本を持っていないのでどのような環境なのか分からず、問題の再現には至りませんでした。環境の作り方について本の内容を追記すると分かるかもしれません。
guest

回答4

0

ベストアンサー

以下の手順で、ほとんど同じ環境で動作することを確認しました。

Windows環境確認

PS C:\Users\taka> systeminfo.exe ホスト名: SHIMIZUKAWA-T46 OS 名: Microsoft Windows 10 Pro OS バージョン: 10.0.16299 N/A ビルド 16299 (中略) PS C:\Users\taka> chcp 現在のコード ページ: 932

PowerShellのコンソール文字コードは932(≒Shift JIS)です。

Dockerバージョン

PS C:\Users\taka> docker -v Docker version 17.09.0-ce, build afdb6d4

Docker起動(イメージ名は donichi/pythonver2 でした)

PS C:\Users\taka> docker run -it --rm -v C:/Users/taka/py:/py donichi/pythonver2 [root@9c81debf3da3 ~]# source ~/.bash_profile [root@9c81debf3da3 ~]# python --version Python 3.5.2 [root@9c81debf3da3 ~]# cd /py [root@9c81debf3da3 py]# cat hello.py print("土日で分かるpython教室") [root@9c81debf3da3 py]# file hello.py hello.py: UTF-8 Unicode text, with CRLF line terminators [root@9c81debf3da3 py]# python hello.py 土日で分かるpython教室

hello.pyの内容をcatで表示できること、 file コマンドでそのファイルの文字コードがUTF-8なことを確認して、恐らく書籍の期待する通りだろうことを確認しました。

最後に python hello.py で日本語コミで表示できました。


確認手順のなかに、文字コード関連のチェックをちょいちょい入れてやってみました。もし、同じチェックを行って出力が上記例と異なるようであれば、そこから「日本語が表示されない」原因が推測できるかもしれません。

投稿2017/10/22 15:45

shimizukawa

総合スコア1847

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

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

chida3

2017/10/23 13:32

コメントありがとうございます。上記の確認をしましたところ、違ったところとしては2点ありました。 ①Dockerバージョン  17.07.0.-ce, build 8784753 ②catコマンドの結果  print(’python’) ←この時点で半角英数字のみの出力でした。
shimizukawa

2017/10/23 14:03

なるほど。 hello.py のファイルが print("土日で分かるpython教室") と書かれていないんですね。ディレクトリかファイルを間違えている可能性があります(本が間違えている可能性もごく僅かにあります)。 C:\Users[ユーザ名]\donichipython\hello.py のファイルを確認したり、マウント周りを確認したりしてみてください。
chida3

2017/10/26 16:17

アドバイスありがとうございます。 その後、何度かインストールし直しなども試しております。 マウントはできていることを確認しました。 ディレクトリやファイルに関しても問題ないです(といっても、不勉強で「つもり」なのは重々承知ですが……)。 現段階での日本語出力は断念し、Dockerの専門書等を踏まえて基本的なところを勉強しながら解決するしかないかなあと思っております。
chida3

2017/10/29 08:16

KitematicからのWindowsPowerShellでは依然として日本語だけ出力されないのですが、DockerQuickstartTerminalからコンテナ作成、実行すると日本語の出力もできました(詳細は質問に追記しております)。 このような場合、どのようなところを調査・検証するとよいでしょうか。
shimizukawa

2017/10/30 08:32

KitematicからのWindowsPowerShellでも確認してみましたが、日本語が表示できました。後考えられるのは、そのPowerShellのフォント設定が日本語フォントになっていない可能性でしょうか(可能性は低いと思いますが・・・)。タイトルバー右クリック -> プロパティ -> フォント で設定してみてください。私の環境ではMSゴシックになっていました。
teotesu2006

2017/10/30 13:41

突然のコメント失礼いたします。丁度私もchibaさんと同じ本を読み全く同じ状況で困っています。。 shimizukawaさんのアドバイスにてフォントを確認しデフォルトが「ラスターフォント」だったので「MSゴシック」に変更し改善なし。プロパティ -> オプションの現在のコードページも「932 (ANSI/OEM - 日本語 Shift -JIS)という状態でした。 宜しくお願い致します。
chida3

2018/05/06 05:47

アドバイスありがとうございました。 半年も期間が空いてしまい、不義理で申し訳ありません。 最終的に、本書のサポートページに同様の事象についての記載があり、こちらで対処できました。 http://www.sbcr.jp/support/14179.html ※上記の「質問⑨」 当時にもサポートページ等を探したつもりだったのですが、見落としてしまっていたようです。 shimizukawa様が紹介してくださったサイトですと、2件目の対処方法と近いのかなと思っています。 Docker Quickstart TerminalでトライしたときもSSH接続でしたので、「SSH接続するか否か」が問題なのかなと思いました。日本語が表示できなかった明確な原因はまだよく分かっていませんが、本書におけるオフィシャルな対処方法も分かったため、いったんこのまま進めていきたいと思います。 重ね重ねありがとうございました。
shimizukawa

2018/05/06 05:52

解決したようで良かったです。
guest

0

PowerShellでUTF8を表示できるようにすればいいだけのはなしなんじゃ?
コマンドプロンプトでも同様で
ぐぐればすぐでてくるはなしだけど。

投稿2018/05/06 07:26

y_waiwai

総合スコア87749

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

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

chida3

2018/05/06 12:37

chcp 65001でコードページを変更するやり方のことでしょうか? 今のところですが、 ・KitematicでEXEC押下時にPowerShellが起動されるのでそれを利用していたのですが、ここからのコードページの変更のやり方がわからず、試せていません。 ・PowerShell単体の場合はコードページの変更まではできるのですが、Dockerの起動でエラーとなってしまっているため(たぶんコマンドの書き方などが間違っているのだと思いますが)、プログラムの実行に至れていません。
guest

0

ファイルのはじめに

python

1#coding:utf-8

を書き込まないと日本語はうまく表示されません。
つまり

python

1#coding:utf-8 2print("土日で分かるpython教室")

としなければ行けません。

もっというと、コマンドプロンプトの場合utf-8が表示されないため、そもそも日本語表示をさせるのは無理だった気がします。
要は日本語表示はmac限定ということです。
日本語は諦めるのが懸命ですね。

投稿2017/10/22 12:53

編集2017/10/22 12:55
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

shimizukawa

2017/10/22 13:15

いいえ。 `#coding:utf-8` はPython3ではデフォルトなので、必須ではありません。また、コマンドプロンプトのエンコーディングとファイルのエンコーディングは別です。
chida3

2017/10/22 13:55

コメントありがとうございます。 shimizukawa様もご回答いただいていますが、本書ではwindowsメインで書かれており、スクリーンショットもwindowsのものなので、OSは限定されていないと思います。 今回の目的としてはpythonの概要の把握なので、日本語出力は諦めて先に進めるというのもアリですね。
guest

0

pythonとか日本語処理以前の問題で、
No such file or directory
ですから、あるべき場所にhello.pyが存在していないというエラーが出ています。
そのファイルをどこに作成されたのか確認してみてください。

投稿2017/10/22 12:48

KojiDoi

総合スコア13671

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

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

scsi

2017/10/22 12:54

No such file or directory は helley.py ですね。引っ掛けですね(笑)
KojiDoi

2017/10/22 12:56

お、そうか。これはうかつでした。
chida3

2017/10/22 13:49

紛らわしいエビデンスとなっておりすみません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問