Chouettou
Chouettou

Reputation: 1209

How to execute scons in a python3 environment?

I need to import python3 scripts within a scons script. (I use scons v3.0.1.7)

Is there a way to execute scons with python 3 ?

The offical scons site says

This will be the first release to support Python versions earlier than 2.7 as well as 3.5+

Something like scons -python /usr/bin/python3 would be good to select the python interpreter.

I did not find either how to build a scons version for python3.

Upvotes: 17

Views: 20330

Answers (4)

Timothy Pulliam
Timothy Pulliam

Reputation: 142

I had to edit /usr/bin/scons and change the shebang from

#! /usr/bin/python

to

#! /usr/bin/env python

Make sure you are in a python3 virtual environment

Upvotes: 3

bdbaddog
bdbaddog

Reputation: 3511

Assuming you have python 3 virtualenv installed:

virtualenv-3.6 venv3
venv3/bin/pip install -U setuptools wheel pip
venv3/bin/pip install scons
venv3/bin/scons

That allows your install to be unaffected by homebrew's updates..

Upvotes: 3

Chouettou
Chouettou

Reputation: 1209

Here is a better solution, add this to your .bash_profile:

alias scons3="/usr/bin/env python3 $(which scons)" 

Upvotes: 15

dirkbaechle
dirkbaechle

Reputation: 4052

In the latest versions, SCons supports both Python2 and Python3. There is no need to recompile SCons itself or such. All that matters is which Python version is the default on your system.

You don't mention under which OS you're trying to get this working, so I assume a Linux for now. After the installation you can find the scons script in a location like /usr/local/bin/scons (try "which scons" if in doubt). The first line

#! /usr/bin/env python

tells your system to use the default Python version. If this is not what you want, you can simply change it to e.g.

#! /usr/bin/env python3

if you're under a Python2-default system, but want to run SCons with Python3 instead.

Upvotes: 16

Related Questions