我正在尝试在 Mac 上使用 Poetry v1.7.1 构建一个虚拟环境,通过
poetry install
使用 pyproject.toml,如下所示:
[tool.poetry]
...
[tool.poetry.dependencies]
python = "^3.9"
mlrun = "1.4.1"
torch = "1.13.1"
transformers = "4.20"
sentence-transformers = "2.2.2"
scikit-learn = "1.2.2"
tensorboard = "2.12.2"
tqdm = "4.65.0"
attr = "0.3.2"
attrs = "23.1.0"
cattrs = "23.2.3"
ruamel-yaml-clib = "0.2.2"
ruamel-yaml = "0.16.10"
emoji = "2.4.0"
s3fs = "2023.1.0"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
但是,我总是收到此错误:
Package operations: 38 installs, 2 updates, 0 removals
• Downgrading attrs (23.2.0 -> 23.1.0)
• Updating pyyaml (5.3 -> 5.4.1): Failed
ChefBuildError
Backend subprocess exited when trying to invoke get_requires_for_build_wheel
running egg_info
writing lib3/PyYAML.egg-info/PKG-INFO
writing dependency_links to lib3/PyYAML.egg-info/dependency_links.txt
writing top-level names to lib3/PyYAML.egg-info/top_level.txt
Traceback (most recent call last):
File "/Users/george/Library/Application Support/pypoetry/venv/lib/python3.10/site-packages/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
main()
File "/Users/george/Library/Application Support/pypoetry/venv/lib/python3.10/site-packages/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/Users/george/Library/Application Support/pypoetry/venv/lib/python3.10/site-packages/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
return hook(config_settings)
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=['wheel'])
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 271, in <module>
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/__init__.py", line 103, in setup
return distutils.core.setup(**attrs)
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 185, in setup
return run_commands(dist)
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
dist.run_commands()
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
self.run_command(cmd)
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/dist.py", line 963, in run_command
super().run_command(command)
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 321, in run
self.find_sources()
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 329, in find_sources
mm.run()
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 551, in run
self.add_defaults()
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 589, in add_defaults
sdist.add_defaults(self)
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/command/sdist.py", line 112, in add_defaults
super().add_defaults()
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/_distutils/command/sdist.py", line 251, in add_defaults
self._add_defaults_ext()
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/_distutils/command/sdist.py", line 336, in _add_defaults_ext
self.filelist.extend(build_ext.get_source_files())
File "<string>", line 201, in get_source_files
File "/var/folders/ly/152vxfld44sd8wg4pvj_g6w00000gn/T/tmpyejafm7e/.venv/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 107, in __getattr__
raise AttributeError(attr)
AttributeError: cython_sources
at ~/Library/Application Support/pypoetry/venv/lib/python3.10/site-packages/poetry/installation/chef.py:164 in _prepare
160│
161│ error = ChefBuildError("\n\n".join(message_parts))
162│
163│ if error is not None:
→ 164│ raise error from None
165│
166│ return path
167│
168│ def _prepare_sdist(self, archive: Path, destination: Path | None = None) -> Path:
Note: This error originates from the build backend, and is likely not a problem with poetry but with pyyaml (5.4.1) not supporting PEP 517 builds. You can verify this by running 'pip wheel --no-cache-dir --use-pep517 "pyyaml (==5.4.1)"'.
按照这个线程,我尝试将此行添加到 toml 文件中,但收到错误:
The Poetry configuration is invalid:
- data.dependencies.PyYAML must be valid exactly by one definition (0 matches found)
我还尝试升级PIP,并通过在toml文件中添加
pyyaml = "6.0.1"
来测试不同的版本...我什至测试了不同的Python版本,并一一安装了软件包。还是没有运气。
我也想尝试这种方式:https://github.com/yaml/pyyaml/issues/736,但似乎无法在pyproject.toml中设置环境变量......有人可以帮忙吗?谢谢
事实证明,您可以下载wheel文件并将其放在工作目录中,并在toml文件中指定文件名:
pyyaml = {file = "PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl"}
这现在允许我成功安装 PyYaml。