Pythonで日本語を実行する際のエラーとは?

このQ&Aのポイント
  • MacでPythonを使用する際に、日本語コメントが含まれるとシンタックスエラーが発生して実行できない問題があります。
  • Windowsでは日本語コメントが問題なく実行されるため、職場のWindows環境で作成したファイルをMacに持ち込む際に問題が発生します。
  • この問題はMacのPythonのバージョンやOSの設定に関係している可能性があります。
回答を見る
  • ベストアンサー

Python で日本語(Mac OSX)

Mac で Python を使用しようと、python 2.5 をインストールしました。 OS は 10.4.8 で、Terminal では一般で言われているように UTF-8 で日本語使用可にしています。しかしスクリプトファイルを実行すると、 Non-ASCII character '?xef' in file と日本語のコメントでシンタックスエラーが出てしまい実行できません。スクリプトファイルは UTF-8 形式です。日本語のコメントが含まれていないと正常に実行されます。 職場では Windows で使用しており、そのファイルを家のMacに持ち込む事が多いのですが、Windowsでは日本語コメントが入っていても問題なく実行されています。 どうぞよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

スクリプトの2行目に # -*- coding: utf-8 -*- と書いてください。

jsbach_2005
質問者

お礼

分かりました。「二行目」というのが大切でした。ご回答文字通り実行すれば良かったのです。有り難うございます。

jsbach_2005
質問者

補足

早速のご回答どうも有り難うございます。しかしながら、既に下記のように書いております。私も詳しく述べるべきでした、すみません。 #!/usr/bin/python # # -*- coding : utf-8 -*- ただもう一度確認してみたところ、Windows の方でも OSX のTerminal と同様 Non ASCII code なるエラーメッセージが実行時に出ています。しかし、スクリプトは問題なく実行されます。

関連するQ&A

  • pythonの文字エンコーディングについて

    pythonのデフォルトエンコーディングは asciiコードですよね? まず mod_wsgiモジュールを用いてapache上で実行したいと思っています。 そこで通常はマジックコメントで #cofing: utf-8 とかかなければ日本語などのマルチバイトは使用できませんよね? それを http://d.hatena.ne.jp/ama-ch/20080610/1213073848 上記ページを参考に import sys sys.setdefaultencofing("utf-8"); とかいて、やればれスクリプトを記述したファイルの冒頭で # coding: utf-8 のマジックコメントを書かなくてもよくなるのかなとおもったのですが そうはいきませんでした。 私のは考えはデフォルトの文字コードが utf-8なら マジックコメントを記述しなくても日本語があつかえるだろうと思っていたのですが・・・・。 上記ページを参考にしてデフォルトの文字コードをutf-8したにも関わらず スクリプトはマジックコメントを記入しなければ 日本語が表示されないのでしょうか? pythonのversionは2.7.2です。

  • Pythonで非日本語のUnicode文字が使えない

    日本Pythonユーザ会が配布している、Windows用のPython2.6.1を使用していますが、 日本語以外のUnicode文字、アクセントのあるフランス語やウムラウトのあるドイツ語を 「Unicode文字として」扱うと、強制終了してしまいます。 たとえば UTF-8 で保存した test.py   # encoding: utf-8   txt = u"日本語、にほんご、Japanese"   print txt   raw_input() は正しく実行・表示できますが、   # encoding: utf-8   txt = u"Français"   print txt   raw_input() とすると実行しても強制終了されてしまいます。 "u" を外すと "Franテァais" と表示してくれますが…。 どうすればフランス語の文字などを扱えるのでしょうか? Python初心者(1ヶ月程度)ですので、時間があれば、詳しく具体的に教えていただけると助かります。

  • Pythonでの日本語処理

    Pythonでの日本語処理 Windows環境でPythonを勉強し始めたところです(本当に始めたばかりです)。 エンコードは「utf-8」が推奨されているようなので、 # coding: utf-8 print u'全角でも' print u'半角でも' print u'ともかくutf-8でエンコードして、且つ頭にuを付ける。' というような書き方で統一してしまおうと思っているのですが、 Pythonに詳しい方のご意見をいただきたく。 よろしくお願いいたします。

  • [python]スクリプトから起動できない

    pythonで、右クリック→プログラムから開く→pythonでpythonの スクリプトファイルを実行できるじゃないですか。 で、この時、ひらいてすぐウィンドウがとじてしまう場合とそのまま実行できる場合があるんです。 なぜでしょう?コーデックのエラーでしょうか・・・

  • pythonでの日本語操作

    お世話になります。 現在、pythonにてあるディレクトリの一覧を表示させるプログラムをしているのですが、対象の中に日本語を含むディレクトリ・ファイルがあると 処理が行われません。 現在書いているコードです。↓ #! /usr/bin/env python # -*- coding: utf-8 -*- # ファイルとサブディレクトリのパスを表示する import os, os.path path = "D:\Myfiles\あいうえお\ " for root, dirs, files in os.walk(path): for file in files: print os.path.join(root) 環境はwindowsXP,python2.6です。 エンコード・デコードを行ったのですがうまくいきませんでした。 ちなみに、pathに日本語が含まれない場合には、一覧が取得できます。 お手数ですが、分かる方いらっしゃいましたら教えてくださいませ。

  • Python os.system 日本語ファイル名 文字化け

    python2.6 ubuntu 9.04 x64 ファイル文字コード UTF-8 # -*- coding: UTF-8 -*- import os, sys command = 'echo "あいうえお" > あああ.txt' os.system (command) このようにファイル出力すると、_____.txt と出力されます。 どのように解決するのでしょうか 直接 echo "あいうえお" > あああ.txt' とコマンドを打った場合は日本語ファイルが作成されます。 print sys.getfilesystemencoding() print sys.stdin.encoding print sys.stdout.encoding print sys.stderr.encoding print sys.getdefaultencoding() >UTF-8 >UTF-8 >UTF-8 >UTF-8 >ascii

  • 各種スクリプト言語の記述時の文字コードについて

    掲題の通り、メジャーなLL言語についての文字コードについて質問です。 例えば PHPでコンソール用にちょっとしたものを書くとき #! /usr/local/php print("文字列"); 書いて、ターミナルで php ./sample.php などとすると問題なく「文字列」という文字が表示されます。 このとき、ファイルはUTF-8で書いたとします。 次に、別のLL言語pythonで下記の様に記述したとします。 #! /usr/local/python print ("python文字列"); 上記内容を python ./sample.py などと実行すると SyntaxError: Non-ASCII character '\xe6' in file と上記のようなエラーがでます。どうやらアスキーコードの範囲外のバイト数が含まれているようです。 これを #! /usr/local/python #coding: utf-8 print ("python文字列"); としてやると問題なく「python 文字列」と表示されると思います。 これはRubyでも同じだと思います。 また同じ様に #! /usr/bin/bash echo "文字列" とシェルスクリプトで上記の様にかいてやると・・・ 問題なく「文字列」と表記されます。 ではなぜシェルスクリプト(bash)やPHPはマジックコメントを記述しなくても 暗黙のうちにUTF-8で文字列が表記されて pythonやRubyは明示的にUTF-8とマジコメを記述しなければならないのでしょうか? ご教授ください。

    • ベストアンサー
    • PHP
  • pythonの文字コードについて

    pythonの各文字コードにおける日本語の扱われ方について分からないことがあります。 日本語1文字の長さはユニコード文字列では1、8ビット文字列では3という説明が参考書には書いてありました。しかし、実際に実行してみると私の環境では結果が異なりました。さらに文字化けまで起きてしまいました。なぜなのでしょうか?回答お願いいたします。 windowsを使用しており、バージョンはpython2.7です。 以下、私の環境下での実行結果です。 >>> ustr=u"あいうえお" >>> len(ustr) 10 >>> len(ustr.encode("utf-8")) 20 >>> print ustr ‚ ‚¢‚¤‚¦‚¨ >>> print ustr.encode("utf-8") ツつツつ「ツつ、ツつヲツつィ >>> ustr2="あいうえお" >>> len(ustr2) 10 >>> print ustr2 あいうえお

  • プログラム初心者です。unix上でのpythonについて

    unix環境でpythonを動かしているんですが、pythonの実行は python スクリプトファイル名.py でRETURNを押せばできるのはわかっているのですが、pythonを取り除いてスクリプトファイル名だけの入力で実行するようにしたいんです。 誰かご教授願えませんか?

  • ターミナルにおけるPythonスクリプトの実行方法

    ターミナルにおいて、Pythonで書いたスクリプトを実行したいです。 手始めに、有名な print"Hello,World"を試してみました。対話型では成功したのですが、 「python プログラム名」の方法では失敗してしまいます。 そのとき、「syntax error」と表示されてしまいます。 全くの素人のため、自分で調べてもさっぱり分かりませんでした。 どうしたらスクリプトを正しく実行することができるのか、教えてください。よろしくお願いします。 環境:imac,mac osx

    • 締切済み
    • Mac