在通过poetry安装后,无法导入Tensorflow 2.13.0,原因是缺少wheel元数据,

h43kikqp  于 3个月前  发布在  其他
关注(0)|答案(6)|浏览(35)

问题类型

Bug

你是否在TensorFlow Nightly版本中重现了这个bug?

问题来源

二进制文件

TensorFlow版本

2.13.0

自定义代码

OS平台和发行版

macOS-13.3-arm64-arm-64bit

移动设备

  • 无响应*

Python版本

3.11

Bazel版本

  • 无响应*

GCC/编译器版本

  • 无响应*

CUDA/cuDNN版本

  • 无响应*

GPU型号和内存

  • 无响应*

当前行为?

在安装了TensorFlow 2.13.0的poetry之后,无法导入。

独立代码以重现问题

请参阅 python-poetry/poetry#8271
根据@dimbleby的说法,这个问题是由于缺少wheel元数据导致的。请鼓励TensorFlow团队在他们的所有wheels中发布一致的元数据,并通过标记描述平台特定的变化。Tensorflow团队,请发布一致的元数据;)

yftpprvb

yftpprvb1#

你好 @dre-hh ,
正如你所看到的这个 issue 。是的,TensorFlow 的元数据没有表达 TensorFlow-macos 依赖关系。作为解决方法,你可以显式地添加 tensorflow-macos(版本为2.13.0),这样就可以解决问题了 -

poetry add tensorflow-macos==2.13.0

谢谢!

cbjzeqam

cbjzeqam2#

感谢回复。不幸的是,这不是一个好的解决方法。现在人们在arm mac上开发并在x86上部署。这意味着,我们无法为整个团队生成一个锁文件,以便跨平台安装相同的软件包版本。这是一个在Python中难以解决的问题,但poetry处理得很好。

还有一个问题:
如果你查看pip site_packages中的元数据,在arm linux上,tensorflow也会安装不同的软件包(tensorflow aws)。这个依赖关系也没有在pypa json元数据中表达。我猜想poetry只使用那个,所以在linux arm上也会安装错误的软件包。

你能以与下载时在Metadata文件中表达的相同的方式向pypa发布一致的元数据吗?

pw136qt2

pw136qt23#

这个问题已经过期,因为它已经开放了7天,没有活动。如果没有进一步的活动发生,它将被关闭。谢谢。

nkcskrwz

nkcskrwz4#

关于将相同的依赖项添加到pypi元数据中的想法,有任何更新吗?
这个想法是否在另一个问题上被跟踪?
有没有阻止TensorFlow团队这样做的原因?
如果没有这些元数据,包的用户必须自己找出要安装的平台特定包。

xwbd5t1u

xwbd5t1u5#

@kulinseth,这是否与Tensorflow MacOS发布有关?

lvmkulzt

lvmkulzt6#

@sachinprasadhs, no it is the tensorflow package itself.

cd  python-3.11/lib/python3.11/site-packages/tensorflow-2.13.0.dist-info
cat METADATA

=>
Description-Content-Type: text/markdown
Requires-Dist: tensorflow-macos (==2.13.0) ; platform_system == "Darwin" and platform_machine == "arm64"
Requires-Dist: tensorflow-cpu-aws (==2.13.0) ; platform_system == "Linux" and (platform_machine == "arm64" or platform_machine == "aarch64")
Requires-Dist: tensorflow-intel (==2.13.0) ; platform_system == "Windows"

This metadata was not published to pypi

$ curl -s https://pypi.org/pypi/tensorflow/2.13.0/json | jq '.info.requires_dist'
[
  "absl-py (>=1.0.0)",
  "astunparse (>=1.6.0)",
  "flatbuffers (>=23.1.21)",
  "gast (<=0.4.0,>=0.2.1)",
  "google-pasta (>=0.1.1)",
  "h5py (>=2.9.0)",
  "libclang (>=13.0.0)",
  "numpy (<=1.24.3,>=1.22)",
  "opt-einsum (>=2.3.2)",
  "packaging",
  "protobuf (!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3)",
  "setuptools",
  "six (>=1.12.0)",
  "termcolor (>=1.1.0)",
  "typing-extensions (<4.6.0,>=3.6.6)",
  "wrapt (>=1.11.0)",
  "grpcio (<2.0,>=1.24.3)",
  "tensorboard (<2.14,>=2.13)",
  "tensorflow-estimator (<2.14,>=2.13.0)",
  "keras (<2.14,>=2.13.1)",
  "tensorflow-io-gcs-filesystem (>=0.23.1) ; platform_machine != \"arm64\" or platform_system != \"Darwin\""
]

Please republish a new version of the package with consitent medata as pip downloads into tensorflow-2.13.0.dist-info/METADATA file

相关问题