Python3.11安装pandana失败:bdist_wheel执行出错
解决Windows 11下安装Pandana时
longintrepr.h找不到的问题 问题背景
Windows 11 64位系统,搭配Python 3.11.1 + Microsoft Visual Studio Build Tools 2022(17.4.3)环境,执行pip install pandana时安装失败,核心错误为:
src\cyaccess.cpp(196)处的致命错误C1083:无法打开包含文件'longintrepr.h',找不到该文件
已尝试直接执行pip install pandana、pip install --upgrade pip setuptools wheel,问题未解决。
解决方案
方法一:安装预编译Wheel包(推荐)
Python 3.11移除了longintrepr.h这个内部头文件,而Pandana官方源码编译依赖该文件,可直接使用第三方预编译的wheel包:
- 下载对应Python 3.11+64位的Pandana wheel文件
- 执行本地安装命令:
pip install pandana-0.6.1-cp311-cp311-win_amd64.whl
方法二:降级Python版本
longintrepr.h在Python 3.10及以下版本中存在,将Python版本降级到3.10.x后,直接运行:
pip install pandana
方法三:修改源码后手动编译
适合有开发经验的用户:
- 克隆Pandana仓库:
git clone https://github.com/UDST/pandana.git
- 打开
src/cyaccess.cpp,找到第196行的#include "longintrepr.h",替换为:
#include "Python.h"
- 进入仓库目录执行安装:
pip install .
错误日志详情
Building wheels for collected packages: pandana, tables Building wheel for pandana (setup.py) ... error error: subprocess-exited-with-error × python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> [47 lines of output] running bdist_wheel running build running build_py creating build creating build\lib.win-amd64-cpython-311 creating build\lib.win-amd64-cpython-311\pandana copying pandana\network.py -> build\lib.win-amd64-cpython-311\pandana copying pandana\testing.py -> build\lib.win-amd64-cpython-311\pandana copying pandana\utils.py -> build\lib.win-amd64-cpython-311\pandana copying pandana\__init__.py -> build\lib.win-amd64-cpython-311\pandana creating build\lib.win-amd64-cpython-311\pandana\loaders copying pandana\loaders\osm.py -> build\lib.win-amd64-cpython-311\pandana\loaders copying pandana\loaders\pandash5.py -> build\lib.win-amd64-cpython-311\pandana\loaders copying pandana\loaders\__init__.py -> build\lib.win-amd64-cpython-311\pandana\loaders running build_ext skipping 'src\cyaccess.cpp' Cython extension (up-to-date) building 'pandana.cyaccess' extension creating build\temp.win-amd64-cpython-311 creating build\temp.win-amd64-cpython-311\Release creating build\temp.win-amd64-cpython-311\Release\src creating build\temp.win-amd64-cpython-311\Release\src\contraction_hierarchies creating build\temp.win-amd64-cpython-311\Release\src\contraction_hierarchies\src "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.34.31933\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -I. "-IC:\Users\Diego DM\AppData\Local\Programs\Python\Python311\include" "-IC:\Users\Diego DM\AppData\Local\Programs\Python\Python311\Include" "-IC:\Users\Diego DM\AppData\Local\Programs\Python\Python311\Lib\site-packages\numpy\core\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.34.31933\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.34.31933\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\cppwinrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" /EHsc /Tpsrc/accessibility.cpp /Fobuild\temp.win-amd64-cpython-311\Release\src\accessibility.obj /w /openmp cl : 命令行警告 D9025: 用"/w"重写"/W3" accessibility.cpp C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.34.31933\include\utility(200): 警告 C4244: "初始化": 从"_Ty"转换到"_Ty2",可能丢失数据 with [ _Ty=float ] and [ _Ty2=int ] src/accessibility.cpp(193): 注意: 参见正在编译的函数模板实例化"std::pair<double,int>::pair<double,float,0>(std::pair<double,float> &&) noexcept"的引用 src/accessibility.cpp(192): 注意: 参见正在编译的函数模板实例化"std::pair<double,int>::pair<double,float,0>(std::pair<double,float> &&) noexcept"的引用 "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.34.31933\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -I. "-IC:\Users\Diego DM\AppData\Local\Programs\Python\Python311\include" "-IC:\Users\Diego DM\AppData\Local\Programs\Python\Python311\Include" "-IC:\Users\Diego DM\AppData\Local\Programs\Python\Python311\Lib\site-packages\numpy\core\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.34.31933\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.34.31933\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\cppwinrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" /EHsc /Tpsrc/contraction_hierarchies/src/libch.cpp /Fobuild\temp.win-amd64-cpython-311\Release\src\contraction_hierarchies\src\libch.obj /w /openmp cl : 命令行警告 D9025: 用"/w"重写"/W3" libch.cpp "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.34.31933\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -I. "-IC:\Users\Diego DM\AppData\Local\Programs\Python\Python311\include" "-IC:\Users\Diego DM\AppData\Local\Programs\Python\Python311\Include" "-IC:\Users\Diego DM\AppData\Local\Programs\Python\Python311\Lib\site-packages\numpy\core\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.34.31933\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.34.31933\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\cppwinrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" /EHsc /Tpsrc/graphalg.cpp /Fobuild\temp.win-amd64-cpython-311\Release\src\graphalg.obj /w /openmp cl : 命令行警告 D9025: 用"/w"重写"/W3" graphalg.cpp "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.34.31933\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -I. "-IC:\Users\Diego DM\AppData\Local\Programs\Python\Python311\include" "-IC:\Users\Diego DM\AppData\Local\Programs\Python\Python311\Include" "-IC:\Users\Diego DM\AppData\Local\Programs\Python\Python311\Lib\site-packages\numpy\core\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.34.31933\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.34.31933\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\cppwinrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" /EHsc /Tpsrc\cyaccess.cpp /Fobuild\temp.win-amd64-cpython-311\Release\src\cyaccess.obj /w /openmp cl : 命令行警告 D9025: 用"/w"重写"/W3" cyaccess.cpp src\cyaccess.cpp(196): 致命错误 C1083: 无法打开包含文件: "longintrepr.h": 系统找不到指定文件 error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.34.31933\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2 [end of output]
内容的提问来源于stack exchange,提问作者diediamil
相关产品推荐
相关产品推荐

