如何修复“由于EnvironmentError:[WinError 123]无法安装软件包”?

3
我正在尝试使用 Python 3.8 下载一些软件包,但每次我尝试安装像 sklearn 或 scipy 这样的软件包时都会出现以下错误:
“无法安装软件包,因为出现 EnvironmentError 错误:[WinError 123] 文件名、目录名或卷标语法不正确:“'C:'”。
我已经重新安装了 Visual Studio,以为可能与构建工具有关,但仍然出现错误。我也尝试以管理员身份运行 PyCharm 并使用 --user,但都无济于事。我还尝试在家里的电脑上下载相同的软件包,但是我得到了相同的错误。
这是我得到的完整错误信息:
  Using cached https://files.pythonhosted.org/packages/1e/7a/dbb3be0ce9bd5c8b7e3d87328e79063f8b263b2b1bfa4774cb1147bfcd3f/sklearn-0.0.tar.gz
Collecting scikit-learn (from sklearn)
  Using cached https://files.pythonhosted.org/packages/18/28/5a48b00599b476875415b97bdfdb3849bafb31183c1d785501dbc8a77aa2/scikit-learn-0.22.1.tar.gz
Requirement already satisfied: numpy>=1.11.0 in c:\users\hp omen\pycharmprojects\evaltrade\venv\lib\site-packages (from scikit-learn->sklearn) (1.18.1)
Collecting scipy>=0.17.0 (from scikit-learn->sklearn)
  Using cached https://files.pythonhosted.org/packages/04/ab/e2eb3e3f90b9363040a3d885ccc5c79fe20c5b8a3caa8fe3bf47ff653260/scipy-1.4.1.tar.gz
  Installing build dependencies: started
  Installing build dependencies: still running...
  Installing build dependencies: finished with status 'error'
  Complete output from command "C:\Users\HP Omen\PycharmProjects\evalTrade\venv\Scripts\python.exe" "C:\Users\HP Omen\PycharmProjects\evalTrade\venv\lib\site-packages\pip-19.0.3-py3.8.egg\pip" install --ignore-installed --no-user --prefix "C:\Users\HP Omen\AppData\Local\Temp\pip-build-env-4p9slqe7\overlay" --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- wheel setuptools Cython>=0.29.13 "numpy==1.13.3; python_version=='3.5' and platform_system!='AIX'" "numpy==1.13.3; python_version=='3.6' and platform_system!='AIX'" "numpy==1.14.5; python_version=='3.7' and platform_system!='AIX'" "numpy==1.17.3; python_version>='3.8' and platform_system!='AIX'" "numpy==1.16.0; python_version=='3.5' and platform_system=='AIX'" "numpy==1.16.0; python_version=='3.6' and platform_system=='AIX'" "numpy==1.16.0; python_version=='3.7' and platform_system=='AIX'" "numpy==1.17.3; python_version>='3.8' and platform_system=='AIX'" pybind11>=2.4.0:
  Ignoring numpy: markers 'python_version == "3.5" and platform_system != "AIX"' don't match your environment
  Ignoring numpy: markers 'python_version == "3.6" and platform_system != "AIX"' don't match your environment
  Ignoring numpy: markers 'python_version == "3.7" and platform_system != "AIX"' don't match your environment
  Ignoring numpy: markers 'python_version == "3.5" and platform_system == "AIX"' don't match your environment
  Ignoring numpy: markers 'python_version == "3.6" and platform_system == "AIX"' don't match your environment
  Ignoring numpy: markers 'python_version == "3.7" and platform_system == "AIX"' don't match your environment
  Ignoring numpy: markers 'python_version >= "3.8" and platform_system == "AIX"' don't match your environment
  Collecting wheel
    Using cached https://files.pythonhosted.org/packages/81/44/db78754a73d9a88c5bd1bb692b40004410970e88aa0c5dff20b57f231505/wheel-0.34.1-py2.py3-none-any.whl
  Collecting setuptools
    Using cached https://files.pythonhosted.org/packages/a7/c5/6c1acea1b4ea88b86b03280f3fde1efa04fefecd4e7d2af13e602661cde4/setuptools-45.1.0-py3-none-any.whl
  Collecting Cython>=0.29.13
    Using cached https://files.pythonhosted.org/packages/9c/9b/706dac7338c2860cd063a28cdbf5e9670995eaea408abbf2e88ba070d90d/Cython-0.29.14.tar.gz
  Collecting numpy==1.17.3
    Using cached https://files.pythonhosted.org/packages/b6/d6/be8f975f5322336f62371c9abeb936d592c98c047ad63035f1b38ae08efe/numpy-1.17.3.zip
  Collecting pybind11>=2.4.0
    Using cached https://files.pythonhosted.org/packages/4b/4d/ae1c4d8e8b139afa9682054dd42df3b0e3b5c1731287933021b9fd7e9cc4/pybind11-2.4.3-py2.py3-none-any.whl
  Installing collected packages: wheel, setuptools, Cython, numpy, pybind11
    Running setup.py install for Cython: started
      Running setup.py install for Cython: finished with status 'done'
    Running setup.py install for numpy: started
      Running setup.py install for numpy: still running...
      Running setup.py install for numpy: finished with status 'done'
  Could not install packages due to an EnvironmentError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: '"C:'


  ----------------------------------------

Command ""C:\Users\HP Omen\PycharmProjects\evalTrade\venv\Scripts\python.exe" "C:\Users\HP Omen\PycharmProjects\evalTrade\venv\lib\site-packages\pip-19.0.3-py3.8.egg\pip" install --ignore-installed --no-user --prefix "C:\Users\HP Omen\AppData\Local\Temp\pip-build-env-4p9slqe7\overlay" --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- wheel setuptools Cython>=0.29.13 "numpy==1.13.3; python_version=='3.5' and platform_system!='AIX'" "numpy==1.13.3; python_version=='3.6' and platform_system!='AIX'" "numpy==1.14.5; python_version=='3.7' and platform_system!='AIX'" "numpy==1.17.3; python_version>='3.8' and platform_system!='AIX'" "numpy==1.16.0; python_version=='3.5' and platform_system=='AIX'" "numpy==1.16.0; python_version=='3.6' and platform_system=='AIX'" "numpy==1.16.0; python_version=='3.7' and platform_system=='AIX'" "numpy==1.17.3; python_version>='3.8' and platform_system=='AIX'" pybind11>=2.4.0" failed with error code 1 in None

请不要发布图片。请编辑帖子并附上完整的错误信息。另外,您正在运行什么命令? - blueteeth
尝试在安装时添加--user参数。或者以管理员身份运行PyCharm并安装包。这可能会有所帮助。 - Kartheek
@blueteeth 我已经编辑过了。命令只是“pip install sklearn”。 - pkmn journey
@Kartheek 都没有起作用。错误一样。 - pkmn journey
你可以从命令行运行 python -m pip install sklearn 来安装sklearn吗?同时,即使出现错误,请确保它实际上没有被安装。 - blueteeth
2个回答

1
今天我也遇到了和你相同的错误,甚至查看了这篇帖子以获得帮助!
你的用户名 HP Omen 之间有一个空格。我在我的 Windows 用户名中去掉了空格,然后成功安装了 scipy。你可以设置一个新的管理员账户并修改当前账户中的名称(包括 C:\Users 中的文件夹名称)。请参考以下链接以获取关于 如何修改当前用户名 的更多帮助。

1
这是有关问题的Github链接 https://github.com/numpy/numpy/issues/11451 - eorochena

1
真正的答案是:你不应该修复它,Python / 软件包开发者应该修复。你应该确定无法安装的确切软件包,并向其开发者报告错误。
在你的情况下,NumPy 是原因,并且已经有一个错误报告,就像 @eorochena 所说的那样。

关于您的问题,如果您使用的是过时或最新版本的Python,且该软件包没有可用的wheel,则仍可能出现此问题。
在这种情况下,您可以尝试两个选项:

  • Force-install an older package version from the official wheel using the following command:
    (outdated Python only)
    pip install --only-binary :all: <failing_package>
    
  • Download unofficial package wheel from here and install it using the following command:
    pip install <path\to\failing_package.whl>
    

编辑:嗯,这很奇怪...根据 PyPI,在你提问的时候实际上有一个官方的Python 3.8 wheel可用于numpy==1.17.3...
您的日志显示正在使用缓存的NumPy源代码。也许您应该尝试使用--no-cache-dir选项运行它?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接