“c1xx:致命错误C1083:无法打开源文件:'cld3/pycld3.cpp':没有这样的文件或目录”使用pip安装pycld3时

Posted

技术标签:

【中文标题】“c1xx:致命错误C1083:无法打开源文件:\'cld3/pycld3.cpp\':没有这样的文件或目录”使用pip安装pycld3时【英文标题】:"c1xx: fatal error C1083: Cannot open source file: 'cld3/pycld3.cpp': No such file or directory" when installing pycld3 with pip“c1xx:致命错误C1083:无法打开源文件:'cld3/pycld3.cpp':没有这样的文件或目录”使用pip安装pycld3时 【发布时间】:2021-02-26 12:45:04 【问题描述】:

我正在尝试在 Python 3.9 上使用 pip 安装 cld3。我已经成功安装了 protoc 并且还使用 Visual Studio 获得了 C++ 构建工具,但是当我运行 py -m pip install -U pycld3 时它会失败并显示一些消息。我在运行 Python 3.9 的 Windows 10 上 它最初无法使用 wheel 构建:

Collecting pycld3
  Using cached pycld3-0.21.tar.gz (652 kB)
Building wheels for collected packages: pycld3
  Building wheel for pycld3 (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: 'C:\Users\Charlie\AppData\Local\Programs\Python\Python39\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Charlie\\AppData\\Local\\Temp\\pip-install-hl9cd_fj\\pycld3_6beaeb0f5dd847eab99d4f8bff3bd60a\\setup.py'"'"'; __file__='"'"'C:\\Users\\Charlie\\AppData\\Local\\Temp\\pip-install-hl9cd_fj\\pycld3_6beaeb0f5dd847eab99d4f8bff3bd60a\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\Charlie\AppData\Local\Temp\pip-wheel-_9ez3o7a'
       cwd: C:\Users\Charlie\AppData\Local\Temp\pip-install-hl9cd_fj\pycld3_6beaeb0f5dd847eab99d4f8bff3bd60a\
  Complete output (23 lines):
  running bdist_wheel
  running build
  Creating dirs at C:\Users\Charlie\AppData\Local\Temp\pip-install-hl9cd_fj\pycld3_6beaeb0f5dd847eab99d4f8bff3bd60a\src/cld_3/protos/

这并不奇怪,因为它在docs 中提到我的操作系统不支持***安装。但是我真的不明白接下来会发生什么:

 Running protoc sentence.proto feature_extractor.proto task_spec.proto --cpp_out=C:\Users\Charlie\AppData\Local\Temp\pip-install-hl9cd_fj\pycld3_6beaeb0f5dd847eab99d4f8bff3bd60a\src/cld_3/protos/
  running build_py
  creating build
  creating build\lib.win-amd64-3.9
  creating build\lib.win-amd64-3.9\cld3
  copying cld3\__init__.py -> build\lib.win-amd64-3.9\cld3
  running build_ext
  building 'cld3._cld3' extension
  creating build\temp.win-amd64-3.9
  creating build\temp.win-amd64-3.9\Release
  creating build\temp.win-amd64-3.9\Release\cld3
  creating build\temp.win-amd64-3.9\Release\src
  creating build\temp.win-amd64-3.9\Release\src\cld_3
  creating build\temp.win-amd64-3.9\Release\src\cld_3\protos
  creating build\temp.win-amd64-3.9\Release\src\script_span
  C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -I/usr/local/include/ -IC:\Users\Charlie\AppData\Local\Temp\pip-install-hl9cd_fj\pycld3_6beaeb0f5dd847eab99d4f8bff3bd60a\src/ -IC:\Users\Charlie\AppData\Local\Temp\pip-install-hl9cd_fj\pycld3_6beaeb0f5dd847eab99d4f8bff3bd60a\src/cld_3/protos/ -IC:\Users\Charlie\AppData\Local\Programs\Python\Python39\include -IC:\Users\Charlie\AppData\Local\Programs\Python\Python39\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\ATLMFC\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt /EHsc /Tpcld3/pycld3.cpp /Fobuild\temp.win-amd64-3.9\Release\cld3/pycld3.obj -std=c++11
  cl : Command line warning D9002 : ignoring unknown option '-std=c++11'
  pycld3.cpp
  c1xx: fatal error C1083: Cannot open source file: 'cld3/pycld3.cpp': No such file or directory
  error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.28.29333\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
  ----------------------------------------
  ERROR: Failed building wheel for pycld3
  Running setup.py clean for pycld3
Failed to build pycld3
Installing collected packages: pycld3
    Running setup.py install for pycld3 ... error
    ERROR: Command errored out with exit status 1:
     command: 'C:\Users\Charlie\AppData\Local\Programs\Python\Python39\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Charlie\\AppData\\Local\\Temp\\pip-install-hl9cd_fj\\pycld3_6beaeb0f5dd847eab99d4f8bff3bd60a\\setup.py'"'"'; __file__='"'"'C:\\Users\\Charlie\\AppData\\Local\\Temp\\pip-install-hl9cd_fj\\pycld3_6beaeb0f5dd847eab99d4f8bff3bd60a\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\Charlie\AppData\Local\Temp\pip-record-fkxpsotm\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\Users\Charlie\AppData\Local\Programs\Python\Python39\Include\pycld3'
         cwd: C:\Users\Charlie\AppData\Local\Temp\pip-install-hl9cd_fj\pycld3_6beaeb0f5dd847eab99d4f8bff3bd60a\
    Complete output (22 lines):
    running install
    running build
    Running protoc sentence.proto feature_extractor.proto task_spec.proto --cpp_out=C:\Users\Charlie\AppData\Local\Temp\pip-install-hl9cd_fj\pycld3_6beaeb0f5dd847eab99d4f8bff3bd60a\src/cld_3/protos/
    running build_py
    creating build
    creating build\lib.win-amd64-3.9
    creating build\lib.win-amd64-3.9\cld3
    copying cld3\__init__.py -> build\lib.win-amd64-3.9\cld3
    running build_ext
    building 'cld3._cld3' extension
    creating build\temp.win-amd64-3.9
    creating build\temp.win-amd64-3.9\Release
    creating build\temp.win-amd64-3.9\Release\cld3
    creating build\temp.win-amd64-3.9\Release\src
    creating build\temp.win-amd64-3.9\Release\src\cld_3
    creating build\temp.win-amd64-3.9\Release\src\cld_3\protos
    creating build\temp.win-amd64-3.9\Release\src\script_span
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -I/usr/local/include/ -IC:\Users\Charlie\AppData\Local\Temp\pip-install-hl9cd_fj\pycld3_6beaeb0f5dd847eab99d4f8bff3bd60a\src/ -IC:\Users\Charlie\AppData\Local\Temp\pip-install-hl9cd_fj\pycld3_6beaeb0f5dd847eab99d4f8bff3bd60a\src/cld_3/protos/ -IC:\Users\Charlie\AppData\Local\Programs\Python\Python39\include -IC:\Users\Charlie\AppData\Local\Programs\Python\Python39\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\ATLMFC\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt /EHsc /Tpcld3/pycld3.cpp /Fobuild\temp.win-amd64-3.9\Release\cld3/pycld3.obj -std=c++11
    cl : Command line warning D9002 : ignoring unknown option '-std=c++11'
    pycld3.cpp
    c1xx: fatal error C1083: Cannot open source file: 'cld3/pycld3.cpp': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.28.29333\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'C:\Users\Charlie\AppData\Local\Programs\Python\Python39\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Charlie\\AppData\\Local\\Temp\\pip-install-hl9cd_fj\\pycld3_6beaeb0f5dd847eab99d4f8bff3bd60a\\setup.py'"'"'; __file__='"'"'C:\\Users\\Charlie\\AppData\\Local\\Temp\\pip-install-hl9cd_fj\\pycld3_6beaeb0f5dd847eab99d4f8bff3bd60a\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\Charlie\AppData\Local\Temp\pip-record-fkxpsotm\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\Users\Charlie\AppData\Local\Programs\Python\Python39\Include\pycld3' Check the logs for full command output.

据我所知,这是因为它找不到“cld3/pycld3.cpp”。我需要运行早期版本的 Python 吗?提前致谢

【问题讨论】:

【参考方案1】:

这是 pycld3 中的一个错误:他们已经 forgotten 将源代码包含到 sdist 中。请report这个bug。

同时解决方法是安装 Cython:

pip install Cython
pip install pycld3

【讨论】:

现在我收到一条错误消息“无法打开包含文件:'google/protobuf/port_def.inc':没有这样的文件或目录” 对于w32/w64,所需的先决条件是 Protobuf。 我已经安装了 Protobuf,但由于某种原因它没有找到目录。我已将目录添加到我的路径中,但没有奏效 它是一个源目录并且有文件google/protobuf/port_def.inc吗?什么环境变量指向它?应该是INCLUDE 对不起,我不确定我是否理解【参考方案2】:

[pycld3维护者]这个问题应该在pycld3 release 0.22解决。

python3 -m pip install -U pycld3

正如@phd 所指出的,这是 0.21 中的分发上传错误,忽略了包含中间 .cpp 文件。在 sdist 中包含该文件不应依赖于用户是否已经或想要使用 Cython 的构建时逻辑。

请注意,在 0.22 版本中,安装将遵循环境变量 USE_CYTHON=1。您必须具有现有的 Cython 安装才能使用此标志。它将强制从源 .pyx 文件重新编译。这遵循Distributing Cython Modules 推荐的行为。

0.22 还放弃了对生命周期结束的 Python 3.5 的支持,并且不再通过 Windows MSVC 上不受支持的 -std=c++11。

详情:full changelog from 0.21 to 0.22。

【讨论】:

以上是关于“c1xx:致命错误C1083:无法打开源文件:'cld3/pycld3.cpp':没有这样的文件或目录”使用pip安装pycld3时的主要内容,如果未能解决你的问题,请参考以下文章