我正在尝试在我的Windows机器上安装PyUblas。我有Visual Studio 2017社区版。我尝试使用
进行安装pip install pyublas
但是收到以下错误消息:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.12.25827\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Ipyublas/include "-Ic:\users\my name\appdata\local\programs\python\python36-32\lib\site-packages\numpy\core\include" "-Ic:\users\my name\appdata\local\programs\python\python36-32\lib\site-packages\numpy\core\include" "-Ic:\users\my name\appdata\local\programs\python\python36-32\lib\site-packages\numpy\core\include" "-Ic:\users\my name\appdata\local\programs\python\python36-32\include" "-Ic:\users\my name\appdata\local\programs\python\python36-32\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.12.25827\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\cppwinrt" /EHsc /Tpsrc/wrapper/main.cpp /Fobuild\temp.win32-3.6\Release\src/wrapper/main.obj -Wno-sign-compare
cl : Command line error D8021 : invalid numeric argument '/Wno-sign-compare'
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.12.25827\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2
----------------------------------------
Command ""c:\users\my name\appdata\local\programs\python\python36-32\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\MYNAME~1\\AppData\\Local\\Temp\\pip-build-z0yc_qan\\PyUblas\\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\MYNAME~1\AppData\Local\Temp\pip-2hhk4m35-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\MYNAME~1\AppData\Local\Temp\pip-build-z0yc_qan\PyUblas\
在documentation页面上,还有一个使用Boost.Build的替代安装方法的两行描述;然而,它似乎已经过时了,或者至少我无法让它工作甚至无法理解它。我已经编译了Boost但不确定我应该做什么。似乎bjam已被b2取代,但运行并没有帮助。我也找不到任何有用的搜索谷歌或在这里。
编辑:
我已尝试从setup.py中删除有问题的行并按照TheGreatParker的建议手动安装。我还删除了第109行和第119行中对该标志的引用,因为它们引发了错误。现在我收到以下错误:
src/wrapper/main.cpp(16): fatal error C1083: Cannot open include file:
'boost/python.hpp': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.12.25827\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.12.25827\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2
我已经尝试将包含python.hpp的boost文件夹复制到安装文件夹中,但这似乎没有帮助。
EDIT2:
我重建了boost
并确保configure.py
创建的安装配置文件(siteconf.py
)正确链接到boost
目录。现在我收到以下错误:
LINK : fatal error LNK1181: cannot open input file 'boost_python36-vc141-mt-x32-1_67.lib'
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.12.25827\\bin\\HostX86\\x86\\link.exe' failed with exit status 1181
我认为它想要的文件位于boost库目录中,对我来说是boost_1_67_0\stage\lib\
。有问题的文件实际上被称为libboost_python36-vc141-mt-x32-1_67.lib
所以我认为问题是它在开头缺少'lib'。但是,当我更改siteconf.py
时:
BOOST_PYTHON_LIBNAME = ['libboost_python36-vc141-mt-x32-1_67']
我收到以下错误:
LINK : fatal error LNK1104: cannot open file 'boost_pythonPY_MAJOR_VERSIONPY_MINOR_VERSION-vc141-mt-x32-1_67.lib'
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.12.25827\\bin\\HostX86\\x86\\link.exe' failed with exit status 1104
似乎无论哪种方式都无法访问此文件。我还尝试制作文件libboost_python36-vc141-mt-x32-1_67
的副本,并将其重命名为安装所需的内容。在这种情况下,我得到了一大堆这类错误:
main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) struct boost::python::converter::registration const * __cdecl boost::python::converter::registry::query(struct boost::python::type_info)" (__imp_?query@registry@converter@python@boost@@YAPBUregistration@234@Utype_info@34@@Z)
直到安装退出并出现错误
build\lib.win32-3.6\pyublas\_internal.cp36-win32.pyd : fatal error LNK1120: 22 unresolved externals
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.12.25827\\bin\\HostX86\\x86\\link.exe' failed with exit status 1120
答案 0 :(得分:0)
您可以尝试手动安装此软件包:
克隆源代码;
打开setup.py
并删除添加此标志的python逻辑。 (在我的版本中,他们是第16行和第17行:
StringListOption("CXXFLAGS", ["-Wno-sign-compare"],
help="Any extra C++ compiler options to include"),
使用python setup.py install
安装已更改setup.py
希望这会对你有所帮助。
答案 1 :(得分:0)
conda install pyublas
您需要安装anaconda / miniconda https://conda.io/docs/user-guide/install/index.html