Tại sao tôi không thể tạo ra một bánh xe trong python?


190

Dưới đây là các lệnh tôi đang chạy:

$ 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

Ngoài ra, tôi đang chạy mac với python homebrewed

Đây là tập lệnh setup.py của tôi: https://gist.github.com/cloudformdesign/4791c46fe7cd52eb61cd

Tôi đang phát điên hoàn toàn - tôi không thể hiểu tại sao điều này sẽ không hoạt động.


2
Và bạn đã cài đặt wheelgói như lời khuyên của Thomas?
Martijn Pieters

1
Tôi có cùng một vấn đề. Nhưng có vẻ như tôi đã không sử dụng sudo trước khi tuyên dương. Sau khi sử dụng khen thưởng với sự cho phép của chính quyền. nó đã làm việc.
thợ săn

Câu trả lời:


301

Cài đặt wheelgói đầu tiên:

pip install wheel

Tài liệu này không quá rõ ràng về điều này, nhưng "dự án bánh xe cung cấp lệnh bdist_wheel cho setuptools" thực sự có nghĩa là " gói bánh xe ..." .


1
Vì vậy, hãy nhổ tệp: nioblocks-1.01-cp34-cp34m-macosx_10_9_x86_64.whl - điều này có hoạt động với bất kỳ HĐH nào không, hoặc tôi có phải làm gì khác để nó hoạt động không? ("gói" chỉ là một loạt các phụ thuộc cho pip để cài đặt ngay bây giờ)
vitirus

1
@GarrettLinux Tôi không biết, tôi xin lỗi, nhưng tôi khuyến khích bạn nên hỏi một câu hỏi riêng cho điều đó; )
Thomas Orozco

1
Tôi cũng đã khắc phục vấn đề đó - việc thêm bất kỳ tệp nào vào tệp setup.py đã cho nó một bánh xe chung. Kiểm tra mã cập nhật trong câu hỏi của tôi chẳng hạn.
vitirus

Bạn có thể nhận được lỗi của OP ngay cả khi đã cài đặt bánh xe, nếu setup.py bằng cách nào đó sử dụng distutils thay vì setuptools (như trường hợp của tôi), hãy xem câu trả lời bằng geographika.
Oliver

4
Đối với tôi vấn đề là phiên bản cũ của pip. được sửa bởipip install --upgrade pip
Ryu_hayabusa

167

Tôi cũng chạy vào thông báo lỗi invalid command 'bdist_wheel'

Nó chỉ ra gói setup.py sử dụng distutils chứ không phải setuptools. Thay đổi nó như sau cho phép tôi xây dựng bánh xe.

#from distutils.core import setup
from setuptools import setup

1
yup, tôi đã có vấn đề đó cùng một lúc! Rất quan trọng, và thông báo lỗi là kém.
vitirus

@geographika vâng, đây cũng là tài liệu về docs.python.org/2/distutils/setupscript.html sẽ sao chép các vấn đề bạn đang tìm kiếm vì nó sử dụng disutils
JamesD

3
Cũng có thể cần phải thay đổi from distutils.core import Extension, Commandđể from setuptools import Extension, Commandít nhất là cho gói Tôi đã làm việc với.
eseglem

Tôi đã gặp lỗi này đối với pycrypto và nó thậm chí không nhập thiết lập. Tuy nhiên, tôi đã thêm vào from setuptools import setuplúc đầu và nó đã khắc phục vấn đề.
haridsv

38

Cập nhật setuptools của bạn, quá.

pip install setuptools --upgrade

Nếu thất bại quá, bạn có thể thử với --forcecờ bổ sung .


1
setuptools của tôi đã bị xóa, hoặc có gì đó không đúng. Vì vậy, tôi đã phải làm: pip cài đặt setuptools
nâng cấp

12

Tôi cũng bất ngờ gặp phải điều này, sau khi nó hoạt động trước đó và đó là vì tôi đã ở trong một virtualenv và wheelkhông được cài đặt trong virtualenv.


8

Cập nhật pipđầu tiên của bạn :

pip install --upgrade pip

cho Python 3:

pip3 install --upgrade pip

Đây là câu trả lời hữu ích nhất bây giờ. Các phiên bản mới hơn của cài đặt pip không sử dụng bdist_wheel, vì vậy chỉ cần nâng cấp pip làm việc cho tôi mà không cần cài đặt / cập nhật setuptools hoặc bánh xe
theferrit32

4

Nó cũng có thể là bạn chỉ có một hệ thống python3. Do đó, bạn đã cài đặt các gói cần thiết thông qua cài đặt pip3, như bánh xe cài đặt pip3 .

Bạn sẽ cần xây dựng công cụ của mình bằng python3 một cách cụ thể.

python3 setup.py sdist
python3 setup.py bdist_wheel

Chúc mừng.


4

Ném vào câu trả lời khác: Hãy thử kiểm tra PYTHONPATH .

Trước tiên, hãy thử cài đặt wheellại:

pip install wheel

Điều này sẽ cho bạn biết nơi bánh xe được cài đặt, ví dụ:

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

Sau đó thêm vị trí của bánh xe vào PYTHONPATH:

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

Bây giờ xây dựng một bánh xe nên hoạt động tốt.

python setup.py bdist_wheel

2

Tôi đã thử mọi thứ nói ở đây mà không gặp may mắn, nhưng tìm thấy một cách giải quyết. Sau khi chạy lệnh này (và không thành công):bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

Chuyển đến thư mục tạm thời công cụ đã thực hiện (được đưa ra trong đầu ra của lệnh cuối cùng), sau đó thực hiện python setup.py bdist_wheel. Các .whltập tin là trong distthư mục.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.