如何修复Python安装包时出现的EnvironmentError: [WinError 123]错误?
Hey, I’ve dealt with this exact issue before—it’s a compatibility bug between old pip versions and Python 3.8, made worse by spaces in your user directory path. The error [WinError 123] The filename, directory name, or volume label syntax is incorrect: '"C:' is a dead giveaway: pip is mangling the path because it’s using an outdated parser that can’t handle spaces properly.
Here’s how to fix it step by step:
1. Upgrade pip to the latest version
You’re using pip 19.0.3, which doesn’t play nicely with Python 3.8’s path handling. First, activate your virtual environment and run this command to upgrade pip:
python -m pip install --upgrade pip
This fixes the core path parsing bug that’s causing the syntax error.
2. Install the official packages directly
Quick heads-up: sklearn is just a placeholder package—you want to install scikit-learn (the actual library) directly. This avoids unnecessary dependency chain issues, and modern pip will grab pre-compiled wheel packages for Windows so you don’t need to mess with Visual Studio builds:
pip install scikit-learn scipy
If you still hit build-related issues, force pip to use only binary wheel packages (no local compilation needed):
pip install --only-binary :all: scikit-learn scipy
3. Avoid spaces/special characters in your virtual environment path
Your current venv path has a space (HP Omen), which can trigger old path parsing bugs even after upgrading pip. If the first two steps don’t work, try creating a new virtual environment in a directory without spaces, like:
# Delete your old venv first, then create a new one python -m venv C:\Projects\evalTrade\venv # Activate the new venv C:\Projects\evalTrade\venv\Scripts\activate.bat # Install your packages now pip install scikit-learn scipy
Quick Note
Reinstalling Visual Studio was unnecessary here—Windows has pre-built wheels for scikit-learn and scipy these days, so you don’t need to compile anything from source. Running as admin also doesn’t fix this particular issue, since it’s a path parsing bug, not a permission problem.
Full error message for reference:
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
内容的提问来源于stack exchange,提问作者pkmn journey

