Closed NauticalMile64 closed 10 years ago
Hm, that is upsetting! I'm in the process of preparing a new (bug-fix) release 1.0.2, but my Windows virtual hard drive has become corrupted, and so preparing the binaries is taking longer than I had hoped. Normally, pip would install a binary package directly.
Nonetheless, you are probably right that there is also a bug in the source. I will investigate that when my Windows installation is working again.
For now, you can install version 1.0.1 (without requiring a source build) by running
pip install pyviennacl==1.0.1
but note that there is a bug in computing matrix-vector products with non-square matrices, and eigenvalue computations are not entirely working. See issue #11 and issue #13 for more info.
If you would rather build from source using 1.0.2, then you can try removing the following path, if it exists,
external/boost-python-ublas-subset/boost_subset/pyviennaclboost
which is a symlink that probably shouldn't be there on Windows.
OK, I've fixed this in the new 1.0.2 tarball uploaded to PyPI. Binaries for Windows should be available in the next couple of days. If you do want to build 1.0.2 from source yourself, please do, though I recommend the 'Custom installation' method rather than relying on pip to get everything right on Windows.
Thanks for the quick fix. I will clone the repo and try out the custom installation.
@tsmithe I've run into some more errors. Is it useful to you if I report them (I'd be happy to do this if it helps fix more bugs), or do you just want to wait until you get your Windows virtual drive up and running?
Oh, no: please do report them! I of course want it to be easy to install both from source and binary.
@tsmithe Ok I solved that problem (needed to use the MS SDK 7.1 command prompt) and ran into another one, this time during the compilation of the c++ viennacl (thousands of lines of compiler warnings, usually about type conversions, and notifications of some sort about template parameters). I think I'll try installing the c++ viennacl from source to see if I can isolate the issue, and I'll post it as an issue for the c++ version if that is the case.
Ah, I think you've probably just run into an error that occurs with MSVC somewhere in the Lanczos algorithm. I'm discussing it with the main ViennaCL developers at the moment[1]. It's a bit baffling because the same code compiles fine with GCC, and it would be a shame to lose the ability to compute the largest eigenvalues of a dense matrix. Sparse matrices work fine..
Also note that you probably don't strictly need to install ViennaCL from source -- it's a header-only library, and I bundle the most recent release in external/viennacl-dev.
[1] http://thread.gmane.org/gmane.comp.mathematics.viennacl.devel/542
(Nonetheless, any investigation on your behalf would be appreciated; I just don't want you to waste your time!)
@tsmithe you are correct: it does stop for me in the Lanczos algorithm.
On another note, I have the gcc compiler (TDM-GCC) for windows. Is there an option I could change in setup.py
or elsewhere to use gcc instead?
Alas, no: the usual Python binaries for Windows are built using MSVC, and link against the MSVC runtimes. If you try building extensions against different runtime libraries, things tend to go haywire, hence my fairly detailed prescriptions in the README. You are of course free to build Python yourself with GCC, but then you'd be stuck compiling all the extensions, too -- and I'd be surprised if your dedication to the Lanczos algorithm were so great!
@tsmithe Thanks for the info. I'm not that ambitious :).
I don't have any particular insights into the problem, other than what I've mentioned above. I will be testing the code once the changes have been made, and I'll be sure to report anymore errors.
@ndyck -- just FYI, you should have a fixed release around the middle of next week :)
OK, so I've not announced it yet, but if you have a recent version of pip
, you should be able to run pip install pyviennacl
and get version 1.0.3, which fixes all the issues we've spotted. It'll be a binary installation, so you don't need to worry about compilers etc, but do get back to me if it works or doesn't!
No errors during the install, I'll try it out tomorrow and let you know of any issues.
Hi,
I'm having some installation issues using the
pip
install method. I think it's a problem with the source, which is why I'm posting here.3 quick notes:
pyopencl
installed from here. This could be part of the problemThe pip log is long, and I'm pretty sure I can see the relevant error so I'll put it here:
I noticed that line 569 of
aksetup_helper.py
is:so the code was testing if there was already a directory at that path. I'm wondering if I have a file named
boost
at that path, and according to the docsos.path.isdir
only checks if there is a directory at that path, and says nothing about a file. That's just a theory anyway.Below is the full
pip.txt
log. Thanks in advance!