Pythonでホイールを作成できないのはなぜですか?


190

ここに私が実行しているコマンドがあります:

$ python setup.py bdist_wheel
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help

error: invalid command 'bdist_wheel'

$ pip --version
pip 1.5.6 from /usr/local/lib/python3.4/site-packages (python 3.4)

$ python -c "import setuptools; print(setuptools.__version__)"
2.1

$ python --version
Python 3.4.1

$ which python
/usr/local/bin/python

また、私は自作のpythonでmacを実行しています

これが私のsetup.pyスクリプトです:https : //gist.github.com/cloudformdesign/4791c46fe7cd52eb61cd

私は絶対に夢中になります-これがうまくいかない理由がわかりません。


2
そして、あなたはwheelトーマスの答えがアドバイスするようにパッケージをインストールしましたか?
Martijn Pieters

1
私は同じ問題を抱えています。しかし、私は賞賛の前にsudoを使用しなかったようです。使用後は、管理者権限で表彰してください。出来た。
ハンター

回答:


301

最初にwheelパッケージをインストールします

pip install wheel

ドキュメンテーションはこれについて過度に明確ではありませんが、「wheelプロジェクトはsetuptoolsにbdist_wheelコマンドを提供します」は実際には「wheel パッケージ ...」を意味します


1
それで、ファイルを吐き出します:nioblocks-1.01-cp34-cp34m-macosx_10_9_x86_64.whl-これはどのOSでも動作しますか、それとも動作させるために他に何かする必要がありますか?(「パッケージ」は、pipが今すぐインストールするための
一連

1
@GarrettLinuxわかりません。申し訳ありませんが、別の質問をすることをお勧めします。)
Thomas Orozco、2014年

1
私もその問題を修正しました。setup.pyファイルにファイルを追加すると、一般的な操作ができます。たとえば、私の質問の更新されたコードをチェックしてください。
重要なの

ホイールがインストールされている場合でもOPのエラーが発生することがあります。setup.pyが何らかの理由でsetuptoolsではなくdistutilsを使用している場合(私の場合)、geographikaの回答を参照してください。
Oliver

4
私にとって問題は古いバージョンのpipでした。修正済みpip install --upgrade pip
Ryu_hayabusa 2017年

167

私もエラーメッセージに遭遇しました invalid command 'bdist_wheel'

パッケージsetup.pyがsetuptoolsではなくdistutilsを使用したことがわかりました。次のように変更することで、ホイールを組み立てることができました。

#from distutils.core import setup
from setuptools import setup

1
うん、私も一度にその問題を抱えていました!非常に重要で、エラーメッセージは不十分です。
15年

@geographikaはい、これはコマンドです。また、docs.python.org / 2 / distutils / setupscript.htmlのドキュメントは、disutilsを使用しているために見られる問題を再現します
JamesD

3
また、少なくとも私が使用していたパッケージについては、に変更from distutils.core import Extension, Commandする必要があるかもしれませんfrom setuptools import Extension, Command
seglem

pycryptoでこのエラーが発生し、セットアップをインポートすることすらできませんでした。しかし、from setuptools import setup最初に追加して問題を修正しました。
haridsv 2017年

38

setuptoolsも更新します。

pip install setuptools --upgrade

それも失敗する場合は、追加の--forceフラグで試すことができます。


1
setuptoolsが削除されたか、何か問題がありました。だから私はしなければなりませんでした:pip install setuptools --upgrade --force
nycynik '11

12

以前に機能していた後、突然この問題にも遭遇しました。これは、virtualenvの内部にいて、virtualenvにwheelインストールされていなかったためです。


8

pip最初の更新:

pip install --upgrade pip

Python 3の場合:

pip3 install --upgrade pip

これが現在最も有用な答えです。ピップの新しいバージョンは、これだけピップインストールする/アップデートsetuptoolsのか、ホイールを必要とせずに、私のために働いたアップグレード、bdist_wheelを使用しないインストール
theferrit32

4

また、python3システムのみを使用している可能性もあります。したがって、pip3 install wheelのように、pip3 installを介して必要なパッケージをインストールしました

具体的には、python3を使用してコンテンツを構築する必要があります。

python3 setup.py sdist
python3 setup.py bdist_wheel

乾杯。


4

別の答えを出す:を確認してみてくださいPYTHONPATH

まず、もう一度インストールwheelしてみます。

pip install wheel

これにより、ホイールがインストールされている場所がわかります。例:

Requirement already satisfied: wheel in /usr/local/lib/python3.5/dist-packages

次に、ホイールの場所を追加しますPYTHONPATH

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.5/dist-packages/wheel

これで、ホイールの作成は正常に機能するはずです。

python setup.py bdist_wheel

2

私はここで言ったすべてを運なしで試しましたが、回避策を見つけました。このコマンドを実行した後(失敗した場合):bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

ツールが作成した一時ディレクトリ(最後のコマンドの出力に示される)に移動し、を実行しpython setup.py bdist_wheelます。.whlファイルがであるdistフォルダ。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.