FPGAwars/apio

windows go board apio upload fails

pm100 opened this issue · 10 comments

I followed the install instructions and got to apio upload

PS C:\work\nandland\go-board\Blinky> apio upload
[Thu Apr  4 15:47:33 2024] Processing go-board
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Command not found:
(['scons', '-Q', 'upload', 'fpga_arch=ice40', 'fpga_size=1k', 'fpga_type=hx', 'fpga_pack=vq100', 'top_module=Test', 'prog=iceprog -d i:0x0403:0x6010:0', '-f', 'C:\\Python310\\lib\\site-packages\\apio\\resources\\ice40\\SConstruct'],)

Ran as normal user and admin, same result

IIt seems that the 'scons' command is not found.

  1. What happens when you run scons from the command line?

  2. When you run pip freeze, do you see a line with 'scons' ?

PS C:\work\nandland\go-board\Blinky> scons
scons : The term 'scons' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ scons
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (scons:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\work\nandland\go-board\Blinky> pip freeze
WARNING: Ignoring invalid distribution -ip (c:\python310\lib\site-packages)
antlr4-tools==0.2.1
apio==0.9.3
aubio==0.4.9
certifi==2024.2.2
charset-normalizer==3.3.2
click==8.1.3
colorama==0.4.6
idna==3.6
install-jdk==1.1.0
numpy==1.23.4
PyAudio==0.2.12
pyserial==3.5
requests==2.28.2
SCons==4.2.0
semantic-version==2.9.0
urllib3==1.26.18
PS C:\work\nandland\go-board\Blinky>

should I have an executable called scons somewhere, I do not have one anywhere

This is what I see on my system (Mac OSX)

The version is similar to yours.

$ pip freeze | grep -i scons
SCons==4.2.0

The scons binary is here

$ which scons
/Library/Frameworks/Python.framework/Versions/3.12/bin/scons

This is how I find the pip directory package

$ pip show SCons
Name: SCons
Version: 4.2.0
Summary: Open Source next-generation build tool.
Home-page: http://www.scons.org/
Author: William Deegan
Author-email: bill@baddogconsulting.com
License: MIT
Location: /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages
Requires: setuptools
Required-by: apio

The documentation of scons is here https://scons.org/doc/production/HTML/scons-user.html#sect-install-scons and it suggest that an installation should result in a binary called 'scons'. Is it possible that it exists but not on your path?

... this is what I see in that python bin directory

/Library/Frameworks/Python.framework/Versions/3.12/bin $ ls -ald sco*
-rwxr-xr-x  1 user  admin  222 Apr  4 19:22 scons
-rwxr-xr-x  1 user  admin  235 Apr  4 19:22 scons-configure-cache
-rwxr-xr-x  1 user  admin  229 Apr  4 19:22 sconsign

And the scons file contains this

/Library/Frameworks/Python.framework/Versions/3.12/bin $ cat scons
#!/usr/local/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from SCons.Script.Main import main
if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

... looking at my shell config file .bashrc, I see that I manually added that directory at some point to my path. You may need to do something similar on your windows machine. This seems to be standard python stuff so you may want to look around.

export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/3.12/bin"

... I checked on my windows machine. The scons file is here

C:\Users\user>dir c:\Users\user\AppData\Local\Programs\Python\Python312\Scripts\scons.exe
 Volume in drive C has no label.
 Volume Serial Number is 0EAC-4058

 Directory of c:\Users\user\AppData\Local\Programs\Python\Python312\Scripts

03/03/2024  02:15 PM           108,418 scons.exe
               1 File(s)        108,418 bytes
               0 Dir(s)  85,971,275,776 bytes free

so I was supposed to install it myself. The apio installation instruction dont mention it at all

Scons is installed automatically with apio. You do not have to install by your own. But for unkown reason it has not been installed correctly in your system, or it is not in your Path

Try to install it manually. Run this command:

pip install scons

It would be great if you could post the output. Maybe, readi.g it, we can get more information about the problem

Since SCons==4.2.0 already appears in your pip freeze output, my guess is that you need to add the Scripts directory to your path. The bug report below suggests that this is because you didn't check "Add Python to PATH" when you installed python.

python/cpython#111434

I found I had another msys/mingw package installed (Strawberry) its dlls were interfering with apio/ypsys/scons etc.

Removed it, uninstalled apio, python,...... reinstalled from scratch

all works now, but see #370 - apio uninstall does not work on windows