Python coverage是在Windows上安装的,在Python3.8下没有C扩展,但在Python3.7下没有,我如何强制C扩展版本?
我在同一台Windows10机器上安装了python 3.7.5和python 3.8。它们都是从python.org/downloads安装的。当我运行pip安装覆盖率(使用最新版本的pip)时,它会在3.7.5下安装带有c扩展的覆盖率,在3.8.2下安装不带c扩展的覆盖率 我如何强制覆盖率使用c扩展安装,因为没有c扩展性能很差 它出现在3.7.5下载: 其中as 3.8.2下载: 覆盖率-5.0.3.tar.gzPython coverage是在Windows上安装的,在Python3.8下没有C扩展,但在Python3.7下没有,我如何强制C扩展版本?,python,coverage.py,Python,Coverage.py,我在同一台Windows10机器上安装了python 3.7.5和python 3.8。它们都是从python.org/downloads安装的。当我运行pip安装覆盖率(使用最新版本的pip)时,它会在3.7.5下安装带有c扩展的覆盖率,在3.8.2下安装不带c扩展的覆盖率 我如何强制覆盖率使用c扩展安装,因为没有c扩展性能很差 它出现在3.7.5下载: 其中as 3.8.2下载: 覆盖率-5.0.3.tar.gz 后者是“没有c扩展”目前没有适用于Windows和Python 3.8的有效
后者是“没有c扩展”目前没有适用于Windows和Python 3.8的有效
覆盖范围
标记为与cp38-cp38m-win_amd64兼容,因此CPython 3.8与用于64位窗口的cp38m
ABI变体兼容
但是,现在已经没有这种ABI变体了。Python3.8不再有m
(--with pymalloc
)二进制变量,因为
Pip也采取了同样的做法,并创建了这些分发文件的wheel
项目
然而,coverage.py
使用的是,他们使用的是0.33.1
,而上面的更改已经生效。你已经知道了,我也在那里添加了我的发现
幸运的是,这面旗帜是肤浅的。您可以直接从PyPI下载控制盘文件,重命名该文件(从cp38m
中删除m
),然后使用pip安装路径/to/rename/coverage-5.0.3-cp38-cp38m-win_amd64.whl
注意:同样的问题也适用于3.9控制盘。您安装了什么版本?我看到coverage.py,包括3.7和3.8(甚至3.9!),所以也许只需要重新安装?最初我是使用诗歌安装的,后来我使用pip安装的。两者都安装了5.0.3版。当我为3.7安装时,它安装了4.5.4Try runningpip install——强制重新安装——仅二进制:all:-v coverage
以要求选择二进制(wheel)发行版,并详细告知您pip正在查找和决定什么。是的,4.5.4没有3.8个wheel,无论如何也不适用于Windows,在没有开关的情况下运行pip install
,不会升级已安装的旧版本。如果安装了4.5.x,您将无法获得带有3.8轮子的5.0.x版本。