Hiroshiba / become-yukarin

Convert your voice to favorite voice
https://hiroshiba.github.io/blog/became-yuduki-yukari-with-deep-learning-power/
MIT License
576 stars 88 forks source link

Win + Python3.6で「pip install pysptk」を実行したときにエラーが出てインストールできない #16

Closed BURI55 closed 6 years ago

BURI55 commented 6 years ago

前提・実現したいこと Phythonで機械学習の皇室変換システムを作っています。 Pysptkのインストール中に次のエラーメッセージが発生しました。

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

Traceback (most recent call last): File "C:\Users\KHB15\Anaconda3\Scripts\pip-script.py", line 6, in from pip import main File "C:\Users\KHB15\Anaconda3\lib\site-packages\pip__init.py", line 26, in from pip.utils import get_installed_distributions, get_prog File "C:\Users\KHB15\Anaconda3\lib\site-packages\pip\utils__init__.py", line 22, in from pip.compat import console_to_str, expanduser, stdlib_pkgs File "C:\Users\KHB15\Anaconda3\lib\site-packages\pip\compat\init__.py", line 78 def native_str(s, replace=False): ^ IndentationError: expected an indented block

Pipを更新してみたところ以下のエラーになりました。

Collecting pysptk Using cached pysptk-0.1.10.tar.gz Complete output from command python setup.py egg_info: Traceback (most recent call last): File "", line 1, in File "C:\Users\KHB15\AppData\Local\Temp\pip-build-qtdykif9\pysptk\setup.py", line 25, in ['git', 'rev-parse', 'HEAD'], cwd=cwd).decode('ascii').strip() File "C:\Users\KHB15\Anaconda3\lib\subprocess.py", line 316, in check_output *kwargs).stdout File "C:\Users\KHB15\Anaconda3\lib\subprocess.py", line 383, in run with Popen(popenargs, **kwargs) as process: File "C:\Users\KHB15\Anaconda3\lib\subprocess.py", line 676, in init restore_signals, start_new_session) File "C:\Users\KHB15\Anaconda3\lib\subprocess.py", line 957, in _execute_child startupinfo) FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in C:\Users\KHB15\AppData\Local\Temp\pip-build-qtdykif9\pysptk\

スペースやタブを見直したところ以下のエラーになりました。

Traceback (most recent call last): File "C:\Users\KHB15\Anaconda3\Scripts\pip-script.py", line 6, in from pip import main File "C:\Users\KHB15\Anaconda3\lib\site-packages\pip__init.py", line 26, in from pip.utils import get_installed_distributions, get_prog File "C:\Users\KHB15\Anaconda3\lib\site-packages\pip\utils__init__.py", line 22, in from pip.compat import console_to_str, expanduser, stdlib_pkgs File "C:\Users\KHB15\Anaconda3\lib\site-packages\pip\compat\init__.py", line 78 def native_str(s, replace=False): ^ IndentationError: expected an indented block 該当のソースコード

pip install pysptk

を実行しました。 修正したのは、tryから4行をコメントアウトしました。

if sys.version_info >= (3,): def console_to_str(s): try: return s.decode(sys.stdout.encoding) except UnicodeDecodeError: return s.decode('utf_8')

def native_str(s, replace=False):
    if isinstance(s, bytes):
        return s.decode('utf-8', 'replace' if replace else 'strict')
    return s

else: def console_to_str(s): return s

def native_str(s, replace=False):
    # Replace is ignored -- unicode to UTF-8 can't fail
    if isinstance(s, text_type):
        return s.encode('utf-8')
    return s

def total_seconds(td): if hasattr(td, "total_seconds"): return td.total_seconds() else: val = td.microseconds + (td.seconds + td.days 24 3600) * 10 6 return val / 10 6

def get_path_uid(path): """ Return path's uid.

修正後、import localeは追記してあります。

if sys.version_info >= (3,): def console_to_str(s):

try:

return s.decode(sys.stdout.encoding)

except UnicodeDecodeError:

return s.decode('utf_8')

return s.decode(locale.getpreferredencoding() or "utf-8", 'replace') 試したこと chcpでのUTF8へのへの切り替え https://qiita.com/ruteshi_SI_shiteru/items/be6a58276bdbd67dc096 によるpipの書き直し pipの入れ直し スペースの見直し

補足情報(FW/ツールのバージョンなど) Qiitaの指示でエラーが赤字から白地になって減りましたが、インストールはできないです。 Python3.6アナコンダ使用

BURI55 commented 6 years ago

pip/compat/init.pyのconsole_to_str関数を手修正しているようですが、インデントが揃っていないために提示エラーが発生しているようです。 タブと半角空白が混在していないかなど、修正部分に問題ないか確認ください。

投稿 20

BURI55 commented 6 years ago

修正したのは、tryから4行をコメントアウトしました。 だと、console_to_str関数の中身が空になるのでエラーになります。 「chcpでのUTF8へのへの切り替え」ではその後に以下の1行を追加するように記載されています。 return s.decode(locale.getpreferredencoding() or "utf-8", 'replace') あと「import locale」も必要です。