[Scons-users] "pip install scons" result in a broken installation that is unusable
Fux Samuel (ID SIS)
samuel.fux at id.ethz.ch
Fri Oct 12 01:33:30 EDT 2018
Dear Bill,
Thank you for your reply.
For me it still fails:
[sfux at lo-login-01 ~]$ pip install --index-url https://test.pypi.org/simple/ scons==3.1.0.alpha.20181011
Looking in indexes: https://test.pypi.org/simple/
Collecting scons==3.1.0.alpha.20181011
Installing collected packages: scons
Successfully installed scons-3.1.0a20181011
[sfux at lo-login-01 ~]$ scons
SCons import failed. Unable to find engine files in:
/cluster/apps/python/2.7.14/bin/../engine
/cluster/apps/python/2.7.14/bin/scons-local-3.1.0.alpha.20181011
/cluster/apps/python/2.7.14/bin/scons-local
/cluster/apps/python/2.7.14/lib64/python2.7/site-packages/lib/scons-3.1.0.alpha.20181011
/cluster/apps/python/2.7.14/lib/scons-3.1.0.alpha.20181011
/cluster/apps/python/2.7.14/lib/scons-3.1.0.alpha.20181011
/cluster/apps/python/2.7.14/lib64/python2.7/site-packages/lib/python2.7/site-packages/scons-3.1.0.alpha.20181011
/cluster/apps/python/2.7.14/lib/python2.7/site-packages/scons-3.1.0.alpha.20181011
/cluster/apps/python/2.7.14/lib/python2.7/site-packages/scons-3.1.0.alpha.20181011
/cluster/apps/python/2.7.14/lib64/scons-3.1.0.alpha.20181011
/cluster/apps/python/2.7.14/lib64/python2.7/site-packages/lib/scons
/cluster/apps/python/2.7.14/lib/scons
/cluster/apps/python/2.7.14/lib/scons
/cluster/apps/python/2.7.14/lib64/python2.7/site-packages/lib/python2.7/site-packages/scons
/cluster/apps/python/2.7.14/lib/python2.7/site-packages/scons
/cluster/apps/python/2.7.14/lib/python2.7/site-packages/scons
/cluster/apps/python/2.7.14/lib64/scons
Traceback (most recent call last):
File "/cluster/apps/python/2.7.14/bin/scons", line 192, in <module>
import SCons.Script
ImportError: No module named SCons.Script
[sfux at lo-login-01 ~]$
Not using virtualenv is a personal preference, like not using Anaconda to install Python itself or like preferring pip over distutils. I don't like the additional step of activating the virtualenv because I would like to keep things as simple as possible for our cluster users.
If virtualenv is a hard requirement for using SCons, then this should be added to the Readme.md file on github. Currently the Readme.md file states with regards to dependencies:
Execution Requirements
Running SCons requires Python version 2.7.* and Python 3.5 or higher. There should be no other dependencies or requirements to run SCons.
Installation Requirements
Nothing special.
Best regards
Sam
--
ETH Zurich, Dr. sc. ETH Samuel Fux
High Performance Computing, Scientific IT Services
WEC D 13, Weinbergstrasse 11, 8092 Zurich, Switzerland
Phone +41 44 632 57 63, http://www.id.ethz.ch/
samuel.fux at id.ethz.ch
________________________________
Von: Scons-users [scons-users-bounces at scons.org]" im Auftrag von "Bill Deegan [bill at baddogconsulting.com]
Gesendet: Donnerstag, 11. Oktober 2018 19:45
An: SCons users mailing list
Betreff: Re: [Scons-users] "pip install scons" result in a broken installation that is unusable
This issue is resolved by patch merged into master in may.
https://github.com/SCons/scons/pull/3134
You can try via package I just uploaded to testpypi
pip install --index-url https://test.pypi.org/simple/ scons==3.1.0.alpha.20181011
Please let me know if this works for you.
I tried in a freshly built python on my linux system.
Seems to work for me.
-Bill
On Thu, Oct 11, 2018 at 1:37 PM Mats Wichmann <mats at wichmann.us<mailto:mats at wichmann.us>> wrote:
On 10/11/2018 10:37 AM, Mats Wichmann wrote:
> On 10/11/2018 10:19 AM, Bill Deegan wrote:
>> It should work with recent pip.
>> Let me take a look today.
>> -Bill
>
> IMO, some of the paths are ready as they are and should not be joined
> with further bits. a little reorg is needed there.
to be a little less cryptic, it seems that the very first place a path
could be added to prefs is here:
# - running from egg check
try:
import pkg_resources
except ImportError:
pass
else:
# when running from an egg add the egg's directory
try:
d = pkg_resources.get_distribution('scons')
except pkg_resources.DistributionNotFound:
pass
else:
prefs.append(d.location)
This stanza succeeds on all kinds of installations, "running from egg"
does not seem precise; whatever get_distribution looks for is found both
in Linux distro packages and pip installed locations. This gives you
back a path that does not want 'lib' or 'lib/pythonX.Y/site-packages'
appended. For example for a particular virtualenv that has pip-install'd
scons, that stanza yields:
/home/mats/.virtualenvs/py27+scons/lib/python2.7
Further down, after the appending that happens in the two list
comprehensions to all the paths in prefs, that expanded to these two:
/home/mats/.virtualenvs/py27+scons/lib/python2.7/site-packages/lib
/home/mats/.virtualenvs/py27+scons/lib/python2.7/site-packages/lib/python2.7/site-packages
which are throwaways, engine will never be found in those after they are
expanded to these four locations on the final round:
/home/mats/.virtualenvs/py27+scons/lib/python2.7/site-packages/lib/scons-3.0.1
/home/mats/.virtualenvs/py27+scons/lib/python2.7/site-packages/lib/python2.7/site-packages/scons-3.0.1
/home/mats/.virtualenvs/py27+scons/lib/python2.7/site-packages/lib/scons
/home/mats/.virtualenvs/py27+scons/lib/python2.7/site-packages/lib/python2.7/site-packages/scons
there is no site-packages/lib and definitely no
site-packages/lib/.../site-packages - really this is the problem Samuel
is seeing.
What we really wanted to generate from that original first path was:
/home/mats/.virtualenvs/py27+scons/lib/python2.7/site-packages/scons-3.0.1
/home/mats/.virtualenvs/py27+scons/lib/python2.7/site-packages/scons
_______________________________________________
Scons-users mailing list
Scons-users at scons.org<mailto:Scons-users at scons.org>
https://pairlist4.pair.net/mailman/listinfo/scons-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20181012/3e9ceb36/attachment-0001.html>
More information about the Scons-users
mailing list