构建TensorFlow pip软件包时有告警信息提示。部分告警信息如下:
!! check.warn(importable) /usr/local/lib/python3.9/site-packages/setuptools/command/build_py.py:204: _Warning: Package 'tensorflow.xla_aot_runtime_src.tensorflow.tsl.platform' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'tensorflow.xla_aot_runtime_src.tensorflow.tsl.platform' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'tensorflow.xla_aot_runtime_src.tensorflow.tsl.platform' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'tensorflow.xla_aot_runtime_src.tensorflow.tsl.platform' to be distributed and are already explicitly excluding 'tensorflow.xla_aot_runtime_src.tensorflow.tsl.platform' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ********************************************************************************
关键错误信息:setuptools的方法随着版本演进,发生变化,使用find_namespace_packages(...)/find_namespace:替换find_packages(...)/find:。
1 | Alternatively, you can also rely on setuptools' discovery methods(for example by using `find_namespace_packages(...)`/`find_namespace:`instead of `find_packages(...)`/`find:`). |
根本原因分析:setuptools版本兼容性问题。
1 | pip3 list | grep setuptools |
版本信息:
1 2 | pip3 uninstall setuptools pip3 install setuptools==56.0.0 |
56.0.0版本的setuptools安装成功。
目前已经验证了setuptools 42.0.2,50.0.0,56.0.0,57.0.0版本均可以消除告警信息。
1 | ./bazel-bin/tensorflow/tools/pip_package/build_pip_package ./output
|