23670


webフレームワークのbottleをインストールして、

[code]

    from bottle import route, run
    
    @route('/')
    def home():
        return "it is not fancy, but it is my home page"
    
    run(host='localhost', port=9999)
    
[/code]

を実行すると、

[code]

    UnicodeDecodeError: 'utf-8' codec can't decode byte 0x82 in position 0: invalid start byte
    
[/code]

というエラーが出てしまいます。  
調べてみると、socket.pyというスクリプトの

[code]

    def getfqdn(name=''):
        """Get fully qualified domain name from name.
    
        An empty argument is interpreted as meaning the local host.
    
        First the hostname returned by gethostbyaddr() is checked, then
        possibly existing aliases. In case no FQDN is available, hostname
        from gethostname() is returned.
        """
        name = name.strip()
        if not name or name == '0.0.0.0':
            name = gethostname()
        try:
            hostname, aliases, ipaddrs = gethostbyaddr(name)
        except error:
            pass
        else:
            aliases.insert(0, hostname)
            for name in aliases:
                if '.' in name:
                    break
            else:
                name = hostname
        return name
    
[/code]

という箇所の

[code]

    try:
        hostname, aliases, ipaddrs = gethostbyaddr(name)
    
[/code]

という部分にエラーが出ているようです。  
このエラーを出なくするためにはどのようにすればいいのでしょうか？  
よろしくお願いします。


CC BY-SA 3.0
2016-03-23T07:22:55.650
23375
2016-04-01T14:53:24.587
2016-03-23T07:49:31.273
216
9597
question
python bottle
PythonのフレームワークBottleを使用するとUnicodeDecodeErrorが出てしまいます。解決策を教えてください。


マシン名（ホスト名）に日本語を使うのを止めると解決します。  
現在のマシン名の確認は  

[code]

    import socket;
    print(socket.getfqdn())
    
[/code]

で確認出来ます。


CC BY-SA 3.0
2016-04-01T14:53:24.587
23670
2016-04-01T14:53:24.587
3054
23375
answer