OpenRTM / OpenRTM-aist-Python

OpenRTM-aist: RT-Middleware and OMG RTC implementation in Python implemented by AIST
Other
2 stars 7 forks source link

python3環境ではsetup.py buildでUnicodeDecodeErrorになる #14

Closed n-kawauchi closed 5 years ago

n-kawauchi commented 5 years ago

Describe the bug master, svn/RELENG_1_2 の両ブランチで確認

$ python setup.py build
  :
Traceback (most recent call last):
  File "setup.py", line 1064, in <module>
    document_files   = pkg_document_files,
  File "/usr/lib64/python3.7/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/lib64/python3.7/distutils/dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "/usr/lib64/python3.7/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "setup.py", line 530, in run
    return build.run(self)
  File "/usr/lib64/python3.7/distutils/command/build.py", line 135, in run
    self.run_command(cmd_name)
  File "/usr/lib64/python3.7/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib64/python3.7/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "setup.py", line 680, in run
    create_doc(conf_file, target_dir)
  File "setup.py", line 460, in create_doc
    "Generating documentation")
  File "/usr/lib64/python3.7/distutils/util.py", line 286, in execute
    func(*args)
  File "setup.py", line 448, in exec_doxygen
    status, output = commands.getstatusoutput(cmdline)
  File "/usr/lib64/python3.7/subprocess.py", line 586, in getstatusoutput
    data = check_output(cmd, shell=True, text=True, stderr=STDOUT)
  File "/usr/lib64/python3.7/subprocess.py", line 395, in check_output
    **kwargs).stdout
  File "/usr/lib64/python3.7/subprocess.py", line 474, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
  File "/usr/lib64/python3.7/subprocess.py", line 926, in communicate
    stdout = self.stdout.read()
  File "/usr/lib64/python3.7/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 60595-60596: invalid continuation byte

Environment

n-kawauchi commented 5 years ago

追加情報。エラーになった後、続けてもう1回実行するとビルドが通る。

Nobu19800 commented 5 years ago

Fedoraの環境がないため確認ができないのですが、この問題は解決したのでしょうか?

n-kawauchi commented 5 years ago

改めて確認しましたが、やはり同じビルドエラーになります。 これはPython3でcommandsモジュールが廃止されたので、「import subprocess as commands」と対応されていますが、「status, output = commands.getstatusoutput(cmdline)」のところでエラーになっているように見えます。  調べたところsubprocessにはgetstatusoutput関数は存在しないと思えましたが、どのように対応すべきかについては調査できておりません。 別件があり、この調査を中断しています。