python - Installation af PyUblas på Windows

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at installere PyUblas på min Windows-maskine. Jeg har Visual Studio 2017 Community-udgave. Jeg har forsøgt at installere ved hjælp af


pip install pyublas


men få følgende fejlmeddelelse:


    C:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827inHostX86x86cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Ipyublas/include "-Ic:usersmy nameappdatalocalprogramspythonpython36-32libsite-packages
umpycoreinclude" "-Ic:usersmy nameappdatalocalprogramspythonpython36-32libsite-packages
umpycoreinclude" "-Ic:usersmy nameappdatalocalprogramspythonpython36-32libsite-packages
umpycoreinclude" "-Ic:usersmy nameappdatalocalprogramspythonpython36-32include" "-Ic:usersmy nameappdatalocalprogramspythonpython36-32include" "-IC:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.12.25827include" "-IC:Program Files (x86)Windows Kits10include10.0.16299.0ucrt" "-IC:Program Files (x86)Windows Kits10include10.0.16299.0shared" "-IC:Program Files (x86)Windows Kits10include10.0.16299.0um" "-IC:Program Files (x86)Windows Kits10include10.0.16299.0winrt" "-IC:Program Files (x86)Windows Kits10include10.0.16299.0cppwinrt" /EHsc /Tpsrc/wrapper/main.cpp /Fobuild	emp.win32-3.6Releasesrc/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:usersmy nameappdatalocalprogramspythonpython36-32python.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('
', '
');f.close();exec(compile(code, \_\_file\_\_, 'exec'))" install --record C:UsersMYNAME~1AppDataLocalTemppip-2hhk4m35-recordinstall-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:UsersMYNAME~1AppDataLocalTemppip-build-z0yc\_qanPyUblas


På dokumentationssiden er der også en to-linjebeskrivelse af en alternativ installationsmetode ved hjælp af Boost.Build; det virker dog ret forældet, eller i det mindste var jeg ikke i stand til at få det til at fungere eller endda at forstå det. Jeg har samlet Boost, men ikke sikker på hvad jeg skulle gøre da. Det ser ud til, at Bjam er blevet superceded af b2 men løb der ikke hjalp. Jeg kunne heller ikke finde noget nyttigt ved at søge enten Google eller her. [22]


REDIGERE:


Jeg har forsøgt at fjerne de overordnede linjer fra setup.py og installere manuelt som i TheGreatParkers forslag. Jeg har også fjernet referencer til det pågældende flag i linjerne 109 og 119, fordi de smider fejl. Nu får jeg følgende fejl:


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


Jeg har forsøgt at kopiere boost-mappen indeholdende python.hpp i installationsmappen, men det syntes ikke at hjælpe.


Edit2:


Jeg har genopbygget boost og sørget for, at installationskonfigurationsfilen, der er oprettet af configure.py (som er siteconf.py), er korrekt linket til boost -mapperne. Nu får jeg følgende fejl:


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


Jeg indsamler, at den fil, den ønsker, er i biblioteket for boost bibliotek, som for mig er boost\_1\_67\_0stagelib. Den pågældende fil hedder faktisk libboost\_python36-vc141-mt-x32-1\_67.lib, så jeg troede, at problemet var, at det manglede 'lib' i starten. Men da jeg skiftede siteconf.py:


BOOST\_PYTHON\_LIBNAME = ['libboost\_python36-vc141-mt-x32-1\_67']


Jeg fik følgende fejl:


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


Jeg har også forsøgt at lave en kopi af filen libboost\_python36-vc141-mt-x32-1\_67 og omdøbe den, hvad installationen leder efter. I dette tilfælde får jeg en hel masse fejl af den slags :


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)


indtil installationen udløber med fejl


buildlib.win32-3.6pyublas\_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

Bedste reference


Du kan prøve at installere denne pakke manuelt:



  1. Klonekildekode;

  2. Åbn setup.py og fjern pythonlogikken, der tilføjer dette flag. (i min version er de linjer 16 og 17:


     StringListOption("CXXFLAGS", ["-Wno-sign-compare"],
        help="Any extra C++ compiler options to include"),
    

  3. Brug python setup.py install for at installere pakken med ændret setup.py



Håber dette vil hjælpe dig.

Andre referencer 1


conda install pyublas


Du skal installere anaconda/miniconda fra
https://conda.io/docs/user-guide/install/index.html[23]