[chimerax-users] Errors hold when Plugin a bundle into ChimeraX toolshed

Tom Goddard goddard at sonic.net
Tue Apr 6 14:53:04 PDT 2021


Hi Yongcheng,

  ChimeraX is just using pip to install your DLStudio wheel file and pip sees that it lists a dependency on quadprog from PyPi so it fetches that.  This is just normal pip install behavior.  But for whatever reason it cannot find your C++ compiler on Windows so the pip install of quadprog fails.  To debug this I suggest installing Python 3 on your Windows machine and trying a "pip install quadprog" and see if that fails -- I assume it will, possibly because it cannot find your Visual Studio or considers it not compatible with what quadprog requires.

  You should be able to get quadprog to compile on Windows with some effort to figure out why pip is unhappy.

  If you are creating this DLstruct plugin to distribute to others for example on ChimeraX Toolshed you should be aware that almost no Windows users will have a C++ compiler, so quadprog will not install on their systems.  The basic problem is the quadprog developers have not provided Windows builds on PyPi.  So this will make it unusable in your plugin on Windows.  A somewhat painful way to work around this is to compile the Windows quadprog yourself and include it in your ChimeraX plugin (as extra data files) instead of listing it as a dependency.  Maybe instead you could convince the quadprog developer to put a Windows version on PyPi -- as it is now it simply is not usable on Windows for the majority of users who do not develop their own C++ code.

	Tom


> On Apr 6, 2021, at 12:07 PM, Yongcheng MU <ymu004 at odu.edu> wrote:
> 
> Hello Tom,
> 
> Thank you so much for your reply.
> 
> Yes, I am developing this DLstruct Plugin. I have some other questions:
>  
>     1. I have Visual studio code (attached below). Do I still need to install Visual Studio 2019 to use instead of Visual Studio Code
>     2. How does ChimeraX find the required packages? In my understanding, if ChimeraX couldn't find a required package in the system, it will install the package automatically by using pip, is that correct?
> Thank you for your time.
> 
> Best regards,
> Yongcheng
> 
>  (C++ 14 in the Visual Studio code APP)
>  
> 
> (Bundle info and Dependencies)
> 
> 
> On Tue, Apr 6, 2021 at 1:53 PM Tom Goddard <goddard at sonic.net <mailto:goddard at sonic.net>> wrote:
> Hi Yongcheng,
> 
>   Did you develop this DLStruct plugin?  I have not seen it before.  The error message says it was trying to install the quadprog package from PyPi, I guess a quadratic programming library.  You can see on PyPi that it only has a source code distribution
> 
> 	https://pypi.org/project/quadprog/#files <https://pypi.org/project/quadprog/#files>
> 
> and your error indicates it needs to be compiled with Microsoft Visual C++ compilers which you apparently do not have installed.
> 
>> building 'quadprog' extension 
>> error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/ <https://visualstudio.microsoft.com/downloads/> 
> 
> You will have to get the C++ compiler to build quadprog on Windows.
> 
> 	Tom
> 
> 
> 
>> On Apr 6, 2021, at 8:31 AM, Yongcheng MU <ymu004 at odu.edu <mailto:ymu004 at odu.edu>> wrote:
>> 
>> Hello,
>> 
>> Hope this email finds you well.
>> 
>> I'm trying to Plugin a bundle into ChimeraX. I have successfully installed a bundle on macOS, now I'm trying to install the bundle on a Window Desktop. It holds some errors, I searched a lot and I failed to fix this issue. I wonder if you have any suggestions?
>> 
>> Best regards,
>> Yongcheng
>> 
>> 
>> 
>> [toolshed install Z:/Plugin_dl\dist\ChimeraX_DLStruct-0.1-py3-none-
>> any.whl](cxcmd:toolshed install
>> Z:/Plugin_dl\\dist\\ChimeraX_DLStruct-0.1-py3-none-any.whl)
>> 
>> Traceback (most recent call last):
>> File "C:\Program Files\ChimeraX 1.1\bin\lib\site-packages\chimerax\toolshed_utils\__init__.py", line 489, in _pip_install
>> results = _run_pip(command, logger)
>> File "C:\Program Files\ChimeraX 1.1\bin\lib\site-packages\chimerax\toolshed_utils\__init__.py", line 540, in _run_pip
>> raise RuntimeError(s)
>> RuntimeError: Looking in indexes: https://pypi.org/simple <https://pypi.org/simple>, https://cxtoolshed.rbvi.ucsf.edu/pypi/ <https://cxtoolshed.rbvi.ucsf.edu/pypi/> 
>> Processing z:\plugin_dl\dist\chimerax_dlstruct-0.1-py3-none-any.whl 
>> Requirement already satisfied: ChimeraX-Core~=1.0 in c:\program files\chimerax 1.1\bin\lib\site-packages (from ChimeraX-DLStruct==0.1) (1.1) 
>> Requirement already satisfied: numpy~=1.16.4 in c:\users\ymu\appdata\local\ucsf\chimerax\1.1\site-packages (from ChimeraX-DLStruct==0.1) (1.16.6) 
>> Requirement already satisfied: torch~=1.7.1 in c:\users\ymu\appdata\local\ucsf\chimerax\1.1\site-packages (from ChimeraX-DLStruct==0.1) (1.7.1) 
>> Requirement already satisfied: numpy~=1.16.4 in c:\users\ymu\appdata\local\ucsf\chimerax\1.1\site-packages (from ChimeraX-DLStruct==0.1) (1.16.6) 
>> Requirement already satisfied: typing-extensions in c:\users\ymu\appdata\local\ucsf\chimerax\1.1\site-packages (from torch~=1.7.1->ChimeraX-DLStruct==0.1) (3.7.4.3) 
>> Collecting quadprog~=0.1.7 
>> Using cached quadprog-0.1.8.tar.gz (269 kB) 
>> Requirement already satisfied: Cython in c:\program files\chimerax 1.1\bin\lib\site-packages (from quadprog~=0.1.7->ChimeraX-DLStruct==0.1) (0.29.20) 
>> Collecting importlib-metadata~=0.17 
>> Using cached importlib_metadata-0.23-py2.py3-none-any.whl (28 kB) 
>> Requirement already satisfied: zipp>=0.5 in c:\users\ymu\appdata\local\ucsf\chimerax\1.1\site-packages (from importlib-metadata~=0.17->ChimeraX-DLStruct==0.1) (3.4.1) 
>> Building wheels for collected packages: quadprog 
>> Building wheel for quadprog (setup.py): started 
>> Building wheel for quadprog (setup.py): finished with status 'error' 
>> Running setup.py clean for quadprog 
>> Failed to build quadprog 
>> Installing collected packages: quadprog, importlib-metadata, ChimeraX-DLStruct 
>> Running setup.py install for quadprog: started 
>> Running setup.py install for quadprog: finished with status 'error' 
>> ERROR: Command errored out with exit status 1: 
>> command: 'C:\Program Files\ChimeraX 1.1\bin\ChimeraX.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\ymu\\AppData\\Local\\Temp\\pip-install-xakoctiw\\quadprog_7cb25d8bb3904ea3b64643e58389ec80\\setup.py'"'"'; __file__='"'"'C:\\Users\\ymu\\AppData\\Local\\Temp\\pip-install-xakoctiw\\quadprog_7cb25d8bb3904ea3b64643e58389ec80\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\ymu\AppData\Local\Temp\pip-wheel-gloxcthl' 
>> cwd: C:\Users\ymu\AppData\Local\Temp\pip-install-xakoctiw\quadprog_7cb25d8bb3904ea3b64643e58389ec80\ 
>> Complete output (6 lines): 
>> running bdist_wheel 
>> running build 
>> running build_ext 
>> skipping 'quadprog\quadprog.cpp' Cython extension (up-to-date) 
>> building 'quadprog' extension 
>> error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/ <https://visualstudio.microsoft.com/downloads/> 
>> ---------------------------------------- 
>> ERROR: Failed building wheel for quadprog 
>> DEPRECATION: Could not build wheels for quadprog which do not use PEP 517. pip will fall back to legacy 'setup.py install' for these. pip 21.0 will remove support for this functionality. A possible replacement is to fix the wheel build issue reported above. You can find discussion regarding this at https://github.com/pypa/pip/issues/8368 <https://github.com/pypa/pip/issues/8368>. 
>> ERROR: Command errored out with exit status 1: 
>> command: 'C:\Program Files\ChimeraX 1.1\bin\ChimeraX.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\ymu\\AppData\\Local\\Temp\\pip-install-xakoctiw\\quadprog_7cb25d8bb3904ea3b64643e58389ec80\\setup.py'"'"'; __file__='"'"'C:\\Users\\ymu\\AppData\\Local\\Temp\\pip-install-xakoctiw\\quadprog_7cb25d8bb3904ea3b64643e58389ec80\\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\ymu\AppData\Local\Temp\pip-record-gcrsp7lk\install-record.txt' --single-version-externally-managed --user --prefix= --compile --install-headers 'C:\Users\ymu\AppData\Local\UCSF\ChimeraX\Python37\Include\quadprog' 
>> cwd: C:\Users\ymu\AppData\Local\Temp\pip-install-xakoctiw\quadprog_7cb25d8bb3904ea3b64643e58389ec80\ 
>> Complete output (6 lines): 
>> running install 
>> running build 
>> running build_ext 
>> skipping 'quadprog\quadprog.cpp' Cython extension (up-to-date) 
>> building 'quadprog' extension 
>> error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/ <https://visualstudio.microsoft.com/downloads/> 
>> ---------------------------------------- 
>> ERROR: Command errored out with exit status 1: 'C:\Program Files\ChimeraX 1.1\bin\ChimeraX.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\ymu\\AppData\\Local\\Temp\\pip-install-xakoctiw\\quadprog_7cb25d8bb3904ea3b64643e58389ec80\\setup.py'"'"'; __file__='"'"'C:\\Users\\ymu\\AppData\\Local\\Temp\\pip-install-xakoctiw\\quadprog_7cb25d8bb3904ea3b64643e58389ec80\\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\ymu\AppData\Local\Temp\pip-record-gcrsp7lk\install-record.txt' --single-version-externally-managed --user --prefix= --compile --install-headers 'C:\Users\ymu\AppData\Local\UCSF\ChimeraX\Python37\Include\quadprog' Check the logs for full command output. 
>> WARNING: You are using pip version 20.2.2; however, version 21.0.1 is available. 
>> You should consider upgrading via the 'C:\Program Files\ChimeraX 1.1\bin\ChimeraX.exe -m pip install --upgrade pip' command. 
>> 
>> _______________________________________________
>> ChimeraX-users mailing list
>> ChimeraX-users at cgl.ucsf.edu <mailto:ChimeraX-users at cgl.ucsf.edu>
>> Manage subscription:
>> https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users <https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users>
> 
> _______________________________________________
> ChimeraX-users mailing list
> ChimeraX-users at cgl.ucsf.edu
> Manage subscription:
> https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimerax-users/attachments/20210406/307f9f3c/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screen Shot 2021-04-06 at 2.00.04 PM.png
Type: image/png
Size: 1045769 bytes
Desc: not available
URL: <http://plato.cgl.ucsf.edu/pipermail/chimerax-users/attachments/20210406/307f9f3c/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screen Shot 2021-04-06 at 2.00.35 PM.png
Type: image/png
Size: 1203907 bytes
Desc: not available
URL: <http://plato.cgl.ucsf.edu/pipermail/chimerax-users/attachments/20210406/307f9f3c/attachment-0003.png>


More information about the ChimeraX-users mailing list