我的Python包有一个setup.py,它在Ubuntu Trusty和一个新的Vagrant Ubuntu Trusty VM上本地构建得很好

sudo apt-get install python python-dev --force-yes --assume-yes --fix-broken
curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python2.7
sudo -H pip install setuptools wheel virtualenv --upgrade

但当我在Travis CI Trusty Beta VM上做同样的操作时:

- sudo apt-get install python python-dev --force-yes --assume-yes --fix-broken
- curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python2.7
- sudo -H pip install setuptools wheel virtualenv --upgrade

我得到:

python2.7 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'

这为什么我不能在python中创建轮子?是相关的,但请注意,我正在安装轮子并升级setuptools。


当前回答

如果您使用的是setup.cfg文件,请在install_require部分之前添加:

setup_requires =
    wheel

setup.cfg项目示例:

# setup.py
from setuptools import setup

setup()
# setup.cfg
[metadata]
name = name
version = 0.0.1
description = desc
long_description = file: README.md
long_description_content_type = text/markdown
url = url
author = author
classifiers =
    Programming Language :: Python
    Programming Language :: Python :: 3

[options]
include_package_data = true
packages = find:
setup_requires =
    wheel
install_requires =
    packages
    packages
    packages

其他回答

与Travis CI无关,但我在尝试在Mac OSX 10.8.5上安装jupyter时遇到了类似的问题,其他答案都没有帮助。该问题是由为名为pyzmq的包构建“轮子”引起的,错误消息充斥了数百页。

我找到的解决方案是直接安装该软件包的旧版本:

python -m pip install pyzmq==17 --user

之后,jupyter的安装成功,没有任何错误。

如果您使用的是setup.cfg文件,请在install_require部分之前添加:

setup_requires =
    wheel

setup.cfg项目示例:

# setup.py
from setuptools import setup

setup()
# setup.cfg
[metadata]
name = name
version = 0.0.1
description = desc
long_description = file: README.md
long_description_content_type = text/markdown
url = url
author = author
classifiers =
    Programming Language :: Python
    Programming Language :: Python :: 3

[options]
include_package_data = true
packages = find:
setup_requires =
    wheel
install_requires =
    packages
    packages
    packages

我在Ubuntu中安装了python3dev,并在setup.py中添加了setup_requires=[“wheel”]

我尝试了上面给出的pip安装轮子说明,但没有成功,因为我被告知已经满足了要求。事实证明,我使用的是python-3.9网站包中的python-3.10和pip。通过输入python-version和pip-version并比较目录,我终于意识到了这一点。

有了这一认识,我安装了一个新版本的pip来配合我的python-3.10,安装了轮子,一切都正常了。

如果已经安装了所有必需的模块,则可能需要在setup.py文件中导入setuptools模块。所以只需在setup.py文件的开头添加以下行。

import setuptools
from distutils.core import setup
# other imports and setups

车轮文档中也提到了这一点。https://wheel.readthedocs.io/en/stable/#usage