65703

[code]

    $ pip install -r .examples/requirements.txt
    
[/code]

を実行したところ

[code]

    Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-build-VIFN4h/sacrebleu/
    
[/code]

というエラーが出ました。  
またこれまで、

[code]

    $ pip install - -upgrade setuptools
    
[/code]

を行いましたが効果がありませんでした。

このエラーを解決する方法を教えてください。

＜追記＞  
紹介していただいた記事を読んで、pip setuptoolsをupgradeしていなかったことに気がつき、次のコマンドを実行しました。

[code]

    $ pip install - -upgrade pip
    
[/code]

すると、エラーの内容がつぎのように変わりました。

[code]

        ERROR: Command errored out with exit status 1:
     command: /usr/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-jEHSxk/sacrebleu/setup.py'"'"'; __file__='"'"'/tmp/pip-install-jEHSxk/sacrebleu/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-jEHSxk/sacrebleu/pip-egg-info
         cwd: /tmp/pip-install-jEHSxk/sacrebleu/
    Complete output (7 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-jEHSxk/sacrebleu/setup.py", line 65, in <module>
        version = get_version(),
      File "/tmp/pip-install-jEHSxk/sacrebleu/setup.py", line 56, in get_version
        with open(os.path.join(os.path.dirname(__file__), 'sacrebleu.py'), encoding='utf-8') as fin:
    TypeError: 'encoding' is an invalid keyword argument for this function
    ----------------------------------------
    ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
    
[/code]


CC BY-SA 4.0
2020-04-17T04:33:29.343
65701
2023-02-12T02:03:45.417
2020-04-17T05:52:37.450
3060
39670
question
python pip setuptools
Pipインストールでエラー: “python setup.py egg_info” failed with error code 1


コメントで解決したようなので記録として回答しておきます。

大元の原因はPython3.x系しかサポートしていないパッケージ`sacrebleu`をPython2.x系にインストールしようとしていたことです。  
インストール先環境をPython3.x系にする(`pip3`を使う)ことで解決となりました。

最初はPython2.x系のpip,setuptoolsも最新になっていなかったので段階的に状況が変わりました。

  1. Python2.x系がデフォルトかつpip,setuptoolsが古い環境でPython3.x系用パッケージをインストールしようとしてエラー(最初)
  2. Python2.x系のsetuptools,pipを更新して、エラーメッセージが変化  
(`open()`で`encoding`キーワードをサポートしていない=2.x系に3.x系をインストールしようとしている)

  3. PyPIで`sacrebleu`は3.x系のみサポートの記述で、2.x/3.xの版数違いが判明
  4. Python3.x系をインストール先に指定する方法の確認

* * *

以下は経緯詳細です。

`python setup.py egg_info error code 1`で検索すると以下あたりが見つかります。  
[pip でインストールエラー: Command “python setup.py egg_info”
failed](https://ja.stackoverflow.com/q/46978/26370)  
[【Python】「Command “python setup.py egg_info” failed with error code 1 in
…」の対処法](https://keymaso.com/programemory/python/pip-error-1/)  
[pip install時の「“python setup.py egg_info” failed
...」エラー](https://www.ted027.com/post/python-psycopg2/)

最初のStackOverflowの記事は古かったのと、2番目の後半に良いことが書いてあったので紹介。

>
> エラーに慣れていない最初のうちは一番下のエラーメッセージのみを見て、Googleで検索し始める方も多いかもしれません。ぱっと見た感じだと訳がわからないですしね。  
>  しかし案外、単純でしっかり「どの部分で」「どんなエラーが発生したか」、丁寧なライブラリなら「対処法はどうなのか」という内容まで書いてあるものなのです。

それから、エラーメッセージの最後`sacrebleu`がパッケージ名のようなので検索したGitHubのIssue欄に直近の課題があったので、それを紹介。  
[v1.4.6 broke some imports #71](https://github.com/mjpost/sacrebleu/issues/71)

* * *

実際には`setuptools`は更新したけれど`pip`(setuptoolsと誤記されてましたが)は未だったので更新したら状況が変化したとのことで、そのエラーメッセージが追記された。

[code]

      File "/tmp/pip-install-jEHSxk/sacrebleu/setup.py", line 56, in get_version
        with open(os.path.join(os.path.dirname(__file__), 'sacrebleu.py'), encoding='utf-8') as fin:
    TypeError: 'encoding' is an invalid keyword argument for this function
    
[/code]

その最後の`open()`の`encoding`が無効なキーワードということはPython
2.x系らしいということで、PyPIの情報を見たら3.x系のみと書いてあり、これが原因でしょうとコメント。  
[sacrebleu・PyPI](https://pypi.org/project/sacrebleu/) Programming
Languageが`Python::3::Only`

インストール時にPython3系を指定する方法を聞かれたので、`pip3`を使ってみては？とコメントして解決となりました。


CC BY-SA 4.0
2020-04-17T06:22:31.227
65703
2020-04-17T06:52:15.280
2020-04-17T06:52:15.280
26370
26370
65701
answer