KxSystems / pyq

PyQ — Python for kdb+
http://code.kx.com/q/interfaces
Apache License 2.0
190 stars 49 forks source link

Issues installing PyQ on Win10 #74

Closed cppt closed 6 years ago

cppt commented 6 years ago

I'm trying to install PyQ on a 64-bit Win 10 system, python v 3.6.6. I currently have the 32-bit version of kdb+ installed.

I'd initially run into an error indicating I was missing the VS 14 build tools. The link provided was dead (I'm guessing as it point to the VS2015 build tools and VS2017 had been released) so I DLed and installed the the VS2017 build tools. This didn't fix the issue. I tried installing VS 2017 which had some additional python support. This fixed the original issue, but gave rise to another related unresolved externals, which I was able to resolve by running from developer cmd.

I was able to resolve that issue but am now running into an error stating: error: command 'cl.exe' failed: No such file or directory

In short, from what I've seen and also following the issues posted here on git, Windows support for PyQ isn't a primary concern nor is it known to play particularly well with Windows natively. As I have the option of dual booting into a Linux system, before I continue down this rabbit hole, am I likely going to be better off by simply attempting a Ubuntu install? I'd considered simply moving all my development activities to Linux anyway as I've run into a number of issues setting up my system on Windows.

Any advice on resolving the error or input on the relative suitability of PyQ (and kdb and python by extension) to Windows versus Linux is appreciated.

Regards, Chris

abalkin commented 6 years ago

We building pyq and running the tests on 32-bit Window as a part of our internal CI, so you should be able to build any recent version. From your description, it does not look like anything specific pyq. Are you able to build any other python package? Please try

pip install --no-binary numpy numpy

Any advice on resolving the error or input on the relative suitability of PyQ (and kdb and python by extension) to Windows versus Linux is appreciated.

Windows support is still considered experimental, but since we run the same tests on Linux and Windows, once you overcome the installation hurdles, you will be able to use the same features on both platforms. The only major missing feature on windows is the pyq executable: you have to run q python.q script.py instead of pyq script.py.

abalkin commented 6 years ago

The link provided was dead (I'm guessing as it point to the VS2015 build tools and VS2017 had been released) so I DLed and installed the the VS2017 build tools. This didn't fix the issue. I tried installing VS 2017 which had some additional python support.

@sashkab - should we update Windows build instructions? I am not sure what link @cppt is complaining about. Both Python 2.7 and Python 3.6 links that we provide work for me.

cppt commented 6 years ago

Thanks. The first error message I got included the following link to get the missing build tools: https://landinghub.visualstudio.com/visual-cpp-build-tools

I've since closed that cmd terminal otherwise I'd paste the error message.

numpy install completed successfully though threw an error after completing. A quick google seems to suggest this is an existing issue with python 3.6 and numpy, hopefully resolved with 3.7: image

Re Windows support: It sounds like you all aren't running into any of these issues in your testing on Windows then?

ok, I might just install Ubuntu then and give all of this a try there. I'm far from married to Windows and was leaning toward doing that anyway.

abalkin commented 6 years ago

Interesting. Can you rebuild numpy in verbose mode?

pip uninstall numpy
pip install -vvv  --no-binary numpy numpy
abalkin commented 6 years ago

The first error message I got included the following link to get the missing build tools: https://landinghub.visualstudio.com/visual-cpp-build-tools

I am not sure where such message may come from. We don't issue this message and I could not find it in Python sources either. Apparently, people have seen this message with other packages as well. Are you using Anaconda Python by any chance?

cppt commented 6 years ago

No, though I've been considering installing it in hopes of remedying some of these issues given all the supplemental packages it comes with. I did originally have PyCharm installed though.

Log file for verbose install is attached: numpyInstall.txt

abalkin commented 6 years ago

Thanks, can you also attach a similar verbose log from

pip install -vvv  --no-binary pyq pyq
sashkab commented 6 years ago

Our instructions are correct, nothing to update. He complains about link provided from pip, which is dead. End user suppose to install Visual Studio compiler in order to compile PyQ. For Python 3.6 -- It's from https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2017. Based on numpyInstall.txt, it seems like he already has them installed.

From here, pip install -U pyq==4.1.4 should install latest version of PyQ, as long as you followed our instructions.

cppt commented 6 years ago

Attached.
pyqInstall.txt

abalkin commented 6 years ago

Thanks for sharing the log. It looks like you are attempting to build 32-bit PyQ using 64-bit Python. This cannot work. You should download 32-bit python from https://www.python.org/downloads/windows and use it to build PyQ. Alternatively, you can get a 64-bit kdb+ from https://ondemand.kx.com and use that together with the 64-bit python to build 64-bit PyQ.

cppt commented 6 years ago

Thank you, guys...upgraded kdb+ to 64-bit and pyq install completed successfully.

Do kdb+ and pyq versions need to match on Linux as well?

abalkin commented 6 years ago

Do kdb+ and pyq versions need to match on Linux as well?

Yes, you cannot mix 32 and 64-bit libraries in one application. On macOS, you can build Universal binaries, but we still recommend having a matching kdb+/pyq installation for each python version.