tool located in site_scons\site_tools\toolname causes ImportError
"Arndt Pauschardt" <[email protected]>
| Newsgroups | gmane.comp.programming.tools.scons.user |
|---|---|
| Message-ID | <trinity-744c5076-86ec-4b2d-aa3c-96d4b4cd7c3c-1549012877912@3c-app-webde-bs15> |
Hi, *
this is my 1st mail to this list, so pls let me know any 'code-of-conduct' violations ... :-)
1. I have installed WinPython 3.7.10 on a Win7 64bit machine and pip-installed scons into this:
E:\rfs_projects\test>python -VV
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)]
E:\rfs_projects\test>scons --version
SCons by Steven Knight et al.:
script: v3.0.4.3a41ed6b288cee8d085373ad7fa02894e1903864, 2019-01-20 22:51:36, by bdeegan on kufra
engine: v3.0.4.3a41ed6b288cee8d085373ad7fa02894e1903864, 2019-01-20 22:51:36, by bdeegan on kufra
engine path: ['e:\\wpy-3710\\python-3.7.1.amd64\\lib\\site-packages\\scons\\SCons']
Copyright (c) 2001 - 2019 The SCons Foundation
2. I'm running the following SConstruct
env = Environment()
env.Tool('astyle')
2.1 in site_scons\site_tools\astyle I have an __init__.py and an astyle.py:
__init__.py:
from astyle import generate
from astyle import exists
astyle.py :
import os
from SCons.Script import *
def generate(env, **kw):
astyle_path = os.path.join(kw.get('TOOL_DIR', ''), 'AStyle')
env.PrependENVPath('PATH', astyle_path)
ASTYLECOM='astyle --verbose '
env['ASTYLE_OPTS'] = kw.get('OPTS')
import SCons.Builder
# cmd line options, taken from the docu for your convenience
# --ascii output is ascii chars (and not localized or whatever), output is English
astyle_bld = SCons.Builder.Builder(action=['@echo formatting $SOURCE',
ASTYLECOM+
'--options=$ASTYLE_OPTS '
'--ascii '
'$SOURCE > $TARGET'
],
suffix='.astyle'
)
env.Append(BUILDERS={'astyle_C': astyle_bld})
return
def exists(env):
return 0
3. Running this (e.g. scons -h) causes an ImportError:
E:\rfs_projects\test>scons -h
scons: Reading SConscript files ...
ImportError: cannot import name 'generate' from 'astyle' (E:\rfs_projects\test\site_scons\site_tools\astyle\__init__.py):
File "E:\rfs_projects\test\SConstruct", line 2:
env = Environment(tools = ['astyle'])
File "e:\wpy-3710\python-3.7.1.amd64\lib\site-packages\scons\SCons\Environment.py", line 982:
apply_tools(self, tools, toolpath)
File "e:\wpy-3710\python-3.7.1.amd64\lib\site-packages\scons\SCons\Environment.py", line 107:
env.Tool(tool)
File "e:\wpy-3710\python-3.7.1.amd64\lib\site-packages\scons\SCons\Environment.py", line 1788:
tool = SCons.Tool.Tool(tool, toolpath, **kw)
File "e:\wpy-3710\python-3.7.1.amd64\lib\site-packages\scons\SCons\Tool\__init__.py", line 117:
module = self._tool_module()
File "e:\wpy-3710\python-3.7.1.amd64\lib\site-packages\scons\SCons\Tool\__init__.py", line 232:
module = spec.loader.load_module(spec.name)
File "<frozen importlib._bootstrap_external>", line 407:
File "<frozen importlib._bootstrap_external>", line 907:
File "<frozen importlib._bootstrap_external>", line 732:
File "<frozen importlib._bootstrap>", line 265:
File "<frozen importlib._bootstrap>", line 696:
File "<frozen importlib._bootstrap>", line 677:
File "<frozen importlib._bootstrap_external>", line 728:
File "<frozen importlib._bootstrap>", line 219:
File "E:\rfs_projects\test\site_scons\site_tools\astyle\__init__.py", line 1:
from astyle import generate
4. Running the exact same SConstruct (and site_scons\..) from a WinPy2.7.13 (with pip'ed scons 3.0.4) does not cause a problem.
5. Renaming site_scons\site_tools\astyle to astyle_1 (to take it out) and moving astyle.py into site_scons\ fixes the issue for the WinPython 3.7.
I'm not sure what I'm doing wrong, I have been trying to google-read on this "ImportError", but I did not find anything which seems to explain this.
Thx for any help on this
Arndt
_______________________________________________
Scons-users mailing list
[email protected]
https://pairlist4.pair.net/mailman/listinfo/scons-users