hildogjr / KiCost

Build cost spreadsheet for a KiCad project.
MIT License
496 stars 97 forks source link

KiCost 1.1.4, KiCAD 5.1.6-1 Install error under Windows 10 Pro x64 #421

Closed craigarno closed 3 years ago

craigarno commented 3 years ago

Saw the KiCost video, was really excited until I ran into problems I don't know how to solve in the Python environment. Help is requested.

After installing KiCost 1.1.4, KiCost won't start.

C:\WINDOWS\system32>kicost --info
KiCost v.1.1.4.at Python 3.7.3.on Windows-10-10.0.18362-SP0(64bit).Graphical
library: 4.1.0 msw (phoenix) wxWidgets 3.1.4.

KiCost 1.1.4 won't start.

PS C:\Users\craig\Desktop\PicoTAP> kicost                                                                                                                                                                    Traceback (most recent call last):
  File "C:\Users\craig\AppData\Local\Programs\Python\Python37\Scripts\kicost-script.py", line 11, in <module>
    load_entry_point('kicost==1.1.4', 'console_scripts', 'kicost')()
  File "c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg\kicost\__main__.py", line 253, in main
    kicost_gui() # Use the user gui if no input is given.
  File "c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg\kicost\kicost_gui.py", line 1065, in kicost_gui
    frame = formKiCost(None)
  File "c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg\kicost\kicost_gui.py", line 367, in __init__
    fgSizer1.Add(self.m_gauge_process, 1, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5)
wx._core.wxAssertionError: C++ assertion "!(flags & (wxALIGN_BOTTOM | wxALIGN_CENTRE_VERTICAL)) || !(flags & (wxALIGN_RIGHT | wxALIGN_CENTRE_HORIZONTAL))" failed at ..\..\src\common\sizer.cpp(1453) in wxGridSizer::DoInsert(): wxEXPAND flag will be overridden by alignment flags

During install I see lots of

    def Run(self):
    ^
SyntaxError: import * only allowed at module level

MS Windows 10: Fresh install of KiCAD 5.1.6-1, then open CMD Window as Admin:

How to reproduce:

> C:\WINDOWS\system32>easy_install kicost
> Searching for kicost
> Reading https://pypi.org/simple/kicost/
> Downloading https://files.pythonhosted.org/packages/62/64/27e7153c1ad4c3d80ebb12b889f54bc36cdbc573774ab2601970b561d150/kicost-1.1.4.tar.gz#sha256=acf68ca75216986899acabe07b535ebb9cade0877740aa8892a48c42e6afc559
> Best match: kicost 1.1.4
> Processing kicost-1.1.4.tar.gz
> Writing C:\Users\craig\AppData\Local\Temp\easy_install-nyt81s24\kicost-1.1.4\setup.cfg
> Running kicost-1.1.4\setup.py -q bdist_egg --dist-dir C:\Users\craig\AppData\Local\Temp\easy_install-nyt81s24\kicost-1.1.4\egg-dist-tmp-ojiqk9xa
> warning: no files found matching 'block_diag.png'
> warning: no previously-included files matching '__pycache__' found under directory '*'
> warning: no previously-included files matching '*.py[co]' found under directory '*'
>   File "build\bdist.win-amd64\egg\kicost\kicost_kicadplugin.py", line 56
>     def Run(self):
>     ^
> SyntaxError: import * only allowed at module level
> 
> creating c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg
> Extracting kicost-1.1.4-py3.7.egg to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages
>   File "c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg\kicost\kicost_kicadplugin.py", line 56
>     def Run(self):
>     ^
> SyntaxError: import * only allowed at module level
> 
> Adding kicost 1.1.4 to easy-install.pth file
> Installing kicost-script.py script to c:\users\craig\appdata\local\programs\python\python37\Scripts
> Installing kicost.exe script to c:\users\craig\appdata\local\programs\python\python37\Scripts
> 
> Installed c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg
> Processing dependencies for kicost
> Searching for babel>=2.6
> Reading https://pypi.org/simple/babel/
> Downloading https://files.pythonhosted.org/packages/15/a1/522dccd23e5d2e47aed4b6a16795b8213e3272c7506e625f2425ad025a19/Babel-2.8.0-py2.py3-none-any.whl#sha256=d670ea0b10f8b723672d3a6abeb87b565b244da220d76b4dba1b66269ec152d4
> Best match: Babel 2.8.0
> Processing Babel-2.8.0-py2.py3-none-any.whl
> Installing Babel-2.8.0-py2.py3-none-any.whl to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages
> writing requirements to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\Babel-2.8.0-py3.7.egg\EGG-INFO\requires.txt
> Adding Babel 2.8.0 to easy-install.pth file
> Installing pybabel-script.py script to c:\users\craig\appdata\local\programs\python\python37\Scripts
> Installing pybabel.exe script to c:\users\craig\appdata\local\programs\python\python37\Scripts
> 
> Installed c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\babel-2.8.0-py3.7.egg
> Searching for CurrencyConverter>=0.13
> Reading https://pypi.org/simple/CurrencyConverter/
> Downloading https://files.pythonhosted.org/packages/78/ff/0affb7224d471dfc487df0128963067592c2f96db5a3b0175d2aec60c83e/CurrencyConverter-0.14.2.tar.gz#sha256=86cd65bd0c8f9041b43eadae0fecc6f205a735c3f6cd94ae922771184e622f63
> Best match: CurrencyConverter 0.14.2
> Processing CurrencyConverter-0.14.2.tar.gz
> Writing C:\Users\craig\AppData\Local\Temp\easy_install-y223hs9n\CurrencyConverter-0.14.2\setup.cfg
> Running CurrencyConverter-0.14.2\setup.py -q bdist_egg --dist-dir C:\Users\craig\AppData\Local\Temp\easy_install-y223hs9n\CurrencyConverter-0.14.2\egg-dist-tmp-3gob7izm
> creating c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\currencyconverter-0.14.2-py3.7.egg
> Extracting currencyconverter-0.14.2-py3.7.egg to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages
> Adding currencyconverter 0.14.2 to easy-install.pth file
> Installing currency_converter-script.py script to c:\users\craig\appdata\local\programs\python\python37\Scripts
> Installing currency_converter.exe script to c:\users\craig\appdata\local\programs\python\python37\Scripts
> 
> Installed c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\currencyconverter-0.14.2-py3.7.egg
> Searching for requests>=2.18.4
> Reading https://pypi.org/simple/requests/
> Downloading https://files.pythonhosted.org/packages/45/1e/0c169c6a5381e241ba7404532c16a21d86ab872c9bed8bdcd4c423954103/requests-2.24.0-py2.py3-none-any.whl#sha256=fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898
> Best match: requests 2.24.0
> Processing requests-2.24.0-py2.py3-none-any.whl
> Installing requests-2.24.0-py2.py3-none-any.whl to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages
> writing requirements to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\requests-2.24.0-py3.7.egg\EGG-INFO\requires.txt
> Adding requests 2.24.0 to easy-install.pth file
> 
> Installed c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\requests-2.24.0-py3.7.egg
> Searching for tqdm>=4.30.0
> Reading https://pypi.org/simple/tqdm/
> Downloading https://files.pythonhosted.org/packages/28/7e/281edb5bc3274dfb894d90f4dbacfceaca381c2435ec6187a2c6f329aed7/tqdm-4.48.2-py2.py3-none-any.whl#sha256=1a336d2b829be50e46b84668691e0a2719f26c97c62846298dd5ae2937e4d5cf
> Best match: tqdm 4.48.2
> Processing tqdm-4.48.2-py2.py3-none-any.whl
> Installing tqdm-4.48.2-py2.py3-none-any.whl to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages
> writing requirements to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\tqdm-4.48.2-py3.7.egg\EGG-INFO\requires.txt
> Adding tqdm 4.48.2 to easy-install.pth file
> Installing tqdm-script.py script to c:\users\craig\appdata\local\programs\python\python37\Scripts
> Installing tqdm.exe script to c:\users\craig\appdata\local\programs\python\python37\Scripts
> 
> Installed c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\tqdm-4.48.2-py3.7.egg
> Searching for future
> Reading https://pypi.org/simple/future/
> Downloading https://files.pythonhosted.org/packages/45/0b/38b06fd9b92dc2b68d58b75f900e97884c45bedd2ff83203d933cf5851c9/future-0.18.2.tar.gz#sha256=b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d
> Best match: future 0.18.2
> Processing future-0.18.2.tar.gz
> Writing C:\Users\craig\AppData\Local\Temp\easy_install-9_ztr7wb\future-0.18.2\setup.cfg
> Running future-0.18.2\setup.py -q bdist_egg --dist-dir C:\Users\craig\AppData\Local\Temp\easy_install-9_ztr7wb\future-0.18.2\egg-dist-tmp-ucweh_u9
> warning: no files found matching '*.au' under directory 'tests'
> warning: no files found matching '*.gif' under directory 'tests'
> warning: no files found matching '*.txt' under directory 'tests'
> zip_safe flag not set; analyzing archive contents...
> future.backports.test.__pycache__.ssl_servers.cpython-37: module references __file__
> future.backports.test.__pycache__.support.cpython-37: module references __file__
> future.standard_library.__pycache__.__init__.cpython-37: module references __file__
> future.standard_library.__pycache__.__init__.cpython-37: module references __path__
> future.utils.__pycache__.__init__.cpython-37: module MAY be using inspect.stack
> past.builtins.__pycache__.misc.cpython-37: module MAY be using inspect.stack
> past.translation.__pycache__.__init__.cpython-37: module references __file__
> past.translation.__pycache__.__init__.cpython-37: module references __path__
> creating c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\future-0.18.2-py3.7.egg
> Extracting future-0.18.2-py3.7.egg to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages
> Adding future 0.18.2 to easy-install.pth file
> Installing futurize-script.py script to c:\users\craig\appdata\local\programs\python\python37\Scripts
> Installing futurize.exe script to c:\users\craig\appdata\local\programs\python\python37\Scripts
> Installing pasteurize-script.py script to c:\users\craig\appdata\local\programs\python\python37\Scripts
> Installing pasteurize.exe script to c:\users\craig\appdata\local\programs\python\python37\Scripts
> 
> Installed c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\future-0.18.2-py3.7.egg
> Searching for XlsxWriter>=0.7.3
> Reading https://pypi.org/simple/XlsxWriter/
> Downloading https://files.pythonhosted.org/packages/b4/b9/0f095f47d1d8fdf830cab77907467beb784bc13c583e27844a22aa923934/XlsxWriter-1.3.2-py2.py3-none-any.whl#sha256=18385dacdf6327da72e9d41589669d521ec914726bd493fc18e27afb4bb318dc
> Best match: XlsxWriter 1.3.2
> Processing XlsxWriter-1.3.2-py2.py3-none-any.whl
> Installing XlsxWriter-1.3.2-py2.py3-none-any.whl to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages
> Adding XlsxWriter 1.3.2 to easy-install.pth file
> Installing vba_extract.py script to c:\users\craig\appdata\local\programs\python\python37\Scripts
> 
> Installed c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\xlsxwriter-1.3.2-py3.7.egg
> Searching for lxml>=3.7.2
> Reading https://pypi.org/simple/lxml/
> Downloading https://files.pythonhosted.org/packages/bd/a3/4b377aaf02ea39585b81ad9f630226e296d983e9a94d7b78a4bc5e27226d/lxml-4.5.2-cp37-cp37m-win_amd64.whl#sha256=4b4a111bcf4b9c948e020fd207f915c24a6de3f1adc7682a2d92660eb4e84f1a
> Best match: lxml 4.5.2
> Processing lxml-4.5.2-cp37-cp37m-win_amd64.whl
> Installing lxml-4.5.2-cp37-cp37m-win_amd64.whl to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages
> writing requirements to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\lxml-4.5.2-py3.7-win-amd64.egg\EGG-INFO\requires.txt
> Adding lxml 4.5.2 to easy-install.pth file
> 
> Installed c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\lxml-4.5.2-py3.7-win-amd64.egg
> Searching for beautifulsoup4>=4.3.2
> Reading https://pypi.org/simple/beautifulsoup4/
> Downloading https://files.pythonhosted.org/packages/66/25/ff030e2437265616a1e9b25ccc864e0371a0bc3adb7c5a404fd661c6f4f6/beautifulsoup4-4.9.1-py3-none-any.whl#sha256=a6237df3c32ccfaee4fd201c8f5f9d9df619b93121d01353a64a73ce8c6ef9a8
> Best match: beautifulsoup4 4.9.1
> Processing beautifulsoup4-4.9.1-py3-none-any.whl
> Installing beautifulsoup4-4.9.1-py3-none-any.whl to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages
> writing requirements to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\beautifulsoup4-4.9.1-py3.7.egg\EGG-INFO\requires.txt
> Adding beautifulsoup4 4.9.1 to easy-install.pth file
> 
> Installed c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\beautifulsoup4-4.9.1-py3.7.egg
> Searching for pytz>=2015.7
> Reading https://pypi.org/simple/pytz/
> Downloading https://files.pythonhosted.org/packages/4f/a4/879454d49688e2fad93e59d7d4efda580b783c745fd2ec2a3adf87b0808d/pytz-2020.1-py2.py3-none-any.whl#sha256=a494d53b6d39c3c6e44c3bec237336e14305e4f29bbf800b599253057fbb79ed
> Best match: pytz 2020.1
> Processing pytz-2020.1-py2.py3-none-any.whl
> Installing pytz-2020.1-py2.py3-none-any.whl to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages
> Adding pytz 2020.1 to easy-install.pth file
> 
> Installed c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\pytz-2020.1-py3.7.egg
> Searching for urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1
> Reading https://pypi.org/simple/urllib3/
> Downloading https://files.pythonhosted.org/packages/9f/f0/a391d1463ebb1b233795cabfc0ef38d3db4442339de68f847026199e69d7/urllib3-1.25.10-py2.py3-none-any.whl#sha256=e7983572181f5e1522d9c98453462384ee92a0be7fac5f1413a1e35c56cc0461
> Best match: urllib3 1.25.10
> Processing urllib3-1.25.10-py2.py3-none-any.whl
> Installing urllib3-1.25.10-py2.py3-none-any.whl to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages
> writing requirements to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\urllib3-1.25.10-py3.7.egg\EGG-INFO\requires.txt
> Adding urllib3 1.25.10 to easy-install.pth file
> 
> Installed c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\urllib3-1.25.10-py3.7.egg
> Searching for idna<3,>=2.5
> Reading https://pypi.org/simple/idna/
> Downloading https://files.pythonhosted.org/packages/a2/38/928ddce2273eaa564f6f50de919327bf3a00f091b5baba8dfa9460f3a8a8/idna-2.10-py2.py3-none-any.whl#sha256=b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0
> Best match: idna 2.10
> Processing idna-2.10-py2.py3-none-any.whl
> Installing idna-2.10-py2.py3-none-any.whl to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages
> Adding idna 2.10 to easy-install.pth file
> 
> Installed c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\idna-2.10-py3.7.egg
> Searching for chardet<4,>=3.0.2
> Reading https://pypi.org/simple/chardet/
> Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl#sha256=fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691
> Best match: chardet 3.0.4
> Processing chardet-3.0.4-py2.py3-none-any.whl
> Installing chardet-3.0.4-py2.py3-none-any.whl to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages
> Adding chardet 3.0.4 to easy-install.pth file
> Installing chardetect-script.py script to c:\users\craig\appdata\local\programs\python\python37\Scripts
> Installing chardetect.exe script to c:\users\craig\appdata\local\programs\python\python37\Scripts
> 
> Installed c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\chardet-3.0.4-py3.7.egg
> Searching for certifi>=2017.4.17
> Reading https://pypi.org/simple/certifi/
> Downloading https://files.pythonhosted.org/packages/5e/c4/6c4fe722df5343c33226f0b4e0bb042e4dc13483228b4718baf286f86d87/certifi-2020.6.20-py2.py3-none-any.whl#sha256=8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41
> Best match: certifi 2020.6.20
> Processing certifi-2020.6.20-py2.py3-none-any.whl
> Installing certifi-2020.6.20-py2.py3-none-any.whl to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages
> Adding certifi 2020.6.20 to easy-install.pth file
> 
> Installed c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\certifi-2020.6.20-py3.7.egg
> Searching for soupsieve>1.2
> Reading https://pypi.org/simple/soupsieve/
> Downloading https://files.pythonhosted.org/packages/6f/8f/457f4a5390eeae1cc3aeab89deb7724c965be841ffca6cfca9197482e470/soupsieve-2.0.1-py3-none-any.whl#sha256=1634eea42ab371d3d346309b93df7870a88610f0725d47528be902a0d95ecc55
> Best match: soupsieve 2.0.1
> Processing soupsieve-2.0.1-py3-none-any.whl
> Installing soupsieve-2.0.1-py3-none-any.whl to c:\users\craig\appdata\local\programs\python\python37\lib\site-packages
> Adding soupsieve 2.0.1 to easy-install.pth file
> 
> Installed c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\soupsieve-2.0.1-py3.7.egg
> Finished processing dependencies for kicost
> 
> C:\WINDOWS\system32>kicost
> You don't have the wxPython dependence to run the GUI interface. Run once of the follow commands in terminal to install them:
> pip3 install -U wxPython # For Windows & macOS
> pip install -U -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-16.04 wxPython # For Linux 16.04
> Or download from last version from <https://wxpython.org/pages/downloads/>
> 
> C:\WINDOWS\system32>pip3 install -U wxPython
> Collecting wxPython
>   Downloading https://files.pythonhosted.org/packages/fe/1e/49a819630688756128d2c64a4e9e9df667dbd54e47dad586efc46e3a3b37/wxPython-4.1.0-cp37-cp37m-win_amd64.whl (17.9MB)
>     100% |████████████████████████████████| 17.9MB 1.2MB/s
> Collecting six (from wxPython)
>   Downloading https://files.pythonhosted.org/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-py2.py3-none-any.whl
> Collecting pillow (from wxPython)
>   Downloading https://files.pythonhosted.org/packages/36/fd/f83806d04175c0a58332578143ee7a9c5702e6e0f134e157684c737ae55b/Pillow-7.2.0-cp37-cp37m-win_amd64.whl (2.1MB)
>     100% |████████████████████████████████| 2.1MB 3.3MB/s
> Requirement already satisfied, skipping upgrade: numpy; python_version >= "3.0" in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages (from wxPython) (1.17.4)
> Installing collected packages: six, pillow, wxPython
> Successfully installed pillow-7.2.0 six-1.15.0 wxPython-4.1.0
> You are using pip version 19.0.3, however version 20.2.2 is available.
> You should consider upgrading via the 'python -m pip install --upgrade pip' command.
> 
> C:\WINDOWS\system32>kicost
> Traceback (most recent call last):
>   File "C:\Users\craig\AppData\Local\Programs\Python\Python37\Scripts\kicost-script.py", line 11, in <module>
>     load_entry_point('kicost==1.1.4', 'console_scripts', 'kicost')()
>   File "c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg\kicost\__main__.py", line 253, in main
>     kicost_gui() # Use the user gui if no input is given.
>   File "c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg\kicost\kicost_gui.py", line 1065, in kicost_gui
>     frame = formKiCost(None)
>   File "c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg\kicost\kicost_gui.py", line 367, in __init__
>     fgSizer1.Add(self.m_gauge_process, 1, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5)
> wx._core.wxAssertionError: C++ assertion "!(flags & (wxALIGN_BOTTOM | wxALIGN_CENTRE_VERTICAL)) || !(flags & (wxALIGN_RIGHT | wxALIGN_CENTRE_HORIZONTAL))" failed at ..\..\src\common\sizer.cpp(1453) in wxGridSizer::DoInsert(): wxEXPAND flag will be overridden by alignment flags
> 

Fresh install of KiCAD followed by fresh install of KiCost:

Application: KiCad
Version: (5.1.6)-1, release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.66.0 OpenSSL/1.1.1d (Schannel) zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.1.1) nghttp2/1.39.2
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
    Boost: 1.71.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.66.0
    Compiler: GCC 9.2.0 with C++ ABI 1013

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=OFF
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Issue / Problem report

  1. Add the KiCost version. Type kicost --version at terminal.
    C:\WINDOWS\system32>kicost --info
    KiCost v.1.1.4.at Python 3.7.3.on Windows-10-10.0.18362-SP0(64bit).Graphical
    library: 4.1.0 msw (phoenix) wxWidgets 3.1.4.
PS C:\Users\craig\Desktop\PicoTAP> kicost                                                                                                                                                                    Traceback (most recent call last):
  File "C:\Users\craig\AppData\Local\Programs\Python\Python37\Scripts\kicost-script.py", line 11, in <module>
    load_entry_point('kicost==1.1.4', 'console_scripts', 'kicost')()
  File "c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg\kicost\__main__.py", line 253, in main
    kicost_gui() # Use the user gui if no input is given.
  File "c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg\kicost\kicost_gui.py", line 1065, in kicost_gui
    frame = formKiCost(None)
  File "c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg\kicost\kicost_gui.py", line 367, in __init__
    fgSizer1.Add(self.m_gauge_process, 1, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5)
wx._core.wxAssertionError: C++ assertion "!(flags & (wxALIGN_BOTTOM | wxALIGN_CENTRE_VERTICAL)) || !(flags & (wxALIGN_RIGHT | wxALIGN_CENTRE_HORIZONTAL))" failed at ..\..\src\common\sizer.cpp(1453) in wxGridSizer::DoInsert(): wxEXPAND flag will be overridden by alignment flags
  1. Add a terminal error report / txt, use --debug option on KiCost call; kicost -w -i %YOUR_FILE% --debug 8
PS C:\Users\craig\Desktop\PicoTAP> kicost -w -i .\PicoTAP.xml --debug 8
Started KiCost v.1.1.4 on Windows-10-10.0.18362-SP0(64bit) Python 3.7.3
# Getting from XML 'PicoTAP.xml' KiCad BoM...
Getting authorship data...
Getting parts library...
Getting components...
# Removing do not populate parts...
Splitting subparts in the manufacture / distributors codes...
# Grouping parts...
Getting groups of identical components...
Checking the seemingly identical parts group...
Merging field asked in the identical components groups...
Propagating field values to identical components...
No 'manf#' and 'arrow#' field in any part: no information by 'Arrow'.
No 'manf#' and 'digikey#' field in any part: no information by 'Digi-Key'.
No 'manf#' and 'farnell#' field in any part: no information by 'Farnell'.
No 'manf#' and 'mouser#' field in any part: no information by 'Mouser'.
No 'manf#' and 'newark#' field in any part: no information by 'Newark'.
No 'manf#' and 'rs#' field in any part: no information by 'RS Components'.
No 'manf#' and 'tme#' field in any part: no information by 'TME'.
No 'manf#' and 'lcsc#' field in any part: no information by 'LCSC'.
{'local_template': {'label': {'format': {'bg_color': '#008000',
                                         'font_color': 'white'},
                              'name': 'Local'},
                    'module': 'local',
                    'order': {'cols': ['part_num', 'purch', 'refs'],
                              'delimiter': ' '},
                    'type': 'local'}}
# Getting part data from KitSpace...
Progress: 0part [00:00, ?part/s]
Creating the 'PicoTAP.xlsx' spreadsheet...
Writing the global part information...
Qty>> ['C5', 'C1', 'C11', 'C10', 'C12', 'C13', 'C15', 'C14', 'C16', 'C17', 'C18']        None*None
Qty>> ['C2', 'C8', 'C3', 'C7', 'C6']     None*None
Qty>> ['C9', 'C4']       None*None
Qty>> ['F1']     None*None
Qty>> ['J1']     None*None
Qty>> ['J2']     None*None
Qty>> ['J3']     None*None
Qty>> ['L2', 'L1']       None*None
Qty>> ['R1', 'R3', 'R4']         None*None
Qty>> ['R2']     None*None
Qty>> ['R5']     None*None
Qty>> ['R6']     None*None
Qty>> ['R7', 'R8']       None*None
Qty>> ['R9', 'R10', 'R11', 'R12', 'R13']         None*None
Qty>> ['U1']     None*None
Qty>> ['U2']     None*None
Qty>> ['U3']     None*None
Qty>> ['Y1']     None*None
--- Logging error ---
Traceback (most recent call last):
  File "c:\users\craig\appdata\local\programs\python\python37\lib\logging\__init__.py", line 1034, in emit
    msg = self.format(record)
  File "c:\users\craig\appdata\local\programs\python\python37\lib\logging\__init__.py", line 880, in format
    return fmt.format(record)
  File "c:\users\craig\appdata\local\programs\python\python37\lib\logging\__init__.py", line 619, in format
    record.message = record.getMessage()
  File "c:\users\craig\appdata\local\programs\python\python37\lib\logging\__init__.py", line 380, in getMessage
    msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
  File "C:\Users\craig\AppData\Local\Programs\Python\Python37\Scripts\kicost-script.py", line 11, in <module>
    load_entry_point('kicost==1.1.4', 'console_scripts', 'kicost')()
  File "c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg\kicost\__main__.py", line 311, in main
    dist_list=dist_list, currency=args.currency)
  File "c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg\kicost\kicost.py", line 255, in kicost
    user_fields, '-'.join(variant) if len(variant)>1 else variant[0])
  File "c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg\kicost\spreadsheet.py", line 209, in create_spreadsheet
    parts, user_fields, collapse_refs)
  File "c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg\kicost\spreadsheet.py", line 740, in add_globals_to_worksheet
    logger.log(DEBUG_OVERVIEW, 'Getting distributor currency convertion rate {} to {}...', used_currencies, CURRENCY_ALPHA3)
Message: 'Getting distributor currency convertion rate {} to {}...'
Arguments: ([], 'USD')
Sorting the distributors...
Writing the distributor part information...
collapsed_refs =  'C1,C5,C10-C18'
currency =  {'local_template': 'USD'}
fields =  {'datasheet': '~',
 'footprint': 'Capacitor_SMD:C_0805_2012Metric',
 'libpart': 'Device:C',
 'value': '33nF'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['C5', 'C1', 'C11', 'C10', 'C12', 'C13', 'C15', 'C14', 'C16', 'C17', 'C18']
url =  {'local_template': ''}

collapsed_refs =  'C2,C3,C6-C8'
currency =  {'local_template': 'USD'}
fields =  {'datasheet': '~',
 'footprint': 'Capacitor_SMD:C_0805_2012Metric',
 'libpart': 'Device:C',
 'value': '3.3uF'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['C2', 'C8', 'C3', 'C7', 'C6']
url =  {'local_template': ''}

collapsed_refs =  'C4,C9'
currency =  {'local_template': 'USD'}
fields =  {'datasheet': '~',
 'footprint': 'Capacitor_SMD:C_0805_2012Metric',
 'libpart': 'Device:C',
 'value': '27pF'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['C9', 'C4']
url =  {'local_template': ''}

collapsed_refs =  'F1'
currency =  {'local_template': 'USD'}
fields =  {'libpart': 'Device:Polyfuse_Small', 'value': 'Polyfuse_Small'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['F1']
url =  {'local_template': ''}

collapsed_refs =  'J1'
currency =  {'local_template': 'USD'}
fields =  {'libpart': 'Connector:USB_B_Micro', 'value': 'USB_B_Micro'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['J1']
url =  {'local_template': ''}

collapsed_refs =  'J2'
currency =  {'local_template': 'USD'}
fields =  {'libpart': 'Connector_Generic:Conn_02x05_Odd_Even',
 'value': '8510-4500PL (3M)'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['J2']
url =  {'local_template': ''}

collapsed_refs =  'J3'
currency =  {'local_template': 'USD'}
fields =  {'libpart': 'Connector_Generic:Conn_01x03', 'value': 'ALPS_NK236'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['J3']
url =  {'local_template': ''}

collapsed_refs =  'L1,L2'
currency =  {'local_template': 'USD'}
fields =  {'libpart': 'Device:L', 'value': '1uH 0.25A'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['L2', 'L1']
url =  {'local_template': ''}

collapsed_refs =  'R1,R3,R4'
currency =  {'local_template': 'USD'}
fields =  {'datasheet': 'https://www.bourns.com/docs/product-datasheets/CRxxxxx.pdf',
 'footprint': 'Resistor_SMD:R_0805_2012Metric',
 'libpart': 'Device:R_US',
 'value': '10K'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['R1', 'R3', 'R4']
url =  {'local_template': ''}

collapsed_refs =  'R2'
currency =  {'local_template': 'USD'}
fields =  {'datasheet': 'https://www.bourns.com/docs/product-datasheets/CRxxxxx.pdf',
 'footprint': 'Resistor_SMD:R_0805_2012Metric',
 'libpart': 'Device:R_US',
 'value': '0'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['R2']
url =  {'local_template': ''}

collapsed_refs =  'R5'
currency =  {'local_template': 'USD'}
fields =  {'datasheet': 'https://www.bourns.com/docs/product-datasheets/CRxxxxx.pdf',
 'footprint': 'Resistor_SMD:R_0805_2012Metric',
 'libpart': 'Device:R_US',
 'value': '12K'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['R5']
url =  {'local_template': ''}

collapsed_refs =  'R6'
currency =  {'local_template': 'USD'}
fields =  {'datasheet': 'https://www.bourns.com/docs/product-datasheets/CRxxxxx.pdf',
 'footprint': 'Resistor_SMD:R_0805_2012Metric',
 'libpart': 'Device:R_US',
 'value': '2.2K'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['R6']
url =  {'local_template': ''}

collapsed_refs =  'R7,R8'
currency =  {'local_template': 'USD'}
fields =  {'datasheet': 'https://www.bourns.com/docs/product-datasheets/CRxxxxx.pdf',
 'footprint': 'Resistor_SMD:R_0805_2012Metric',
 'libpart': 'Device:R_US',
 'value': '1K'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['R7', 'R8']
url =  {'local_template': ''}

collapsed_refs =  'R9-R13'
currency =  {'local_template': 'USD'}
fields =  {'datasheet': 'https://www.bourns.com/docs/product-datasheets/CRxxxxx.pdf',
 'footprint': 'Resistor_SMD:R_0805_2012Metric',
 'libpart': 'Device:R_US',
 'value': '22'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['R9', 'R10', 'R11', 'R12', 'R13']
url =  {'local_template': ''}

collapsed_refs =  'U1'
currency =  {'local_template': 'USD'}
fields =  {'datasheet': 'http://ww1.microchip.com/downloads/en/DeviceDoc/20001749K.pdf',
 'footprint': 'Package_TO_SOT_SMD:SOT-23-6',
 'libpart': 'Memory_EEPROM:93LCxxBxxOT',
 'value': '93LC46BT-I/OT'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['U1']
url =  {'local_template': ''}

collapsed_refs =  'U2'
currency =  {'local_template': 'USD'}
fields =  {'datasheet': 'https://www.diodes.com/assets/Datasheets/AZ1117.pdf',
 'footprint': 'Package_TO_SOT_SMD:SOT-89-3_Handsoldering',
 'libpart': 'Regulator_Linear:AZ1117-3.3',
 'value': 'AZ1117-3.3'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['U2']
url =  {'local_template': ''}

collapsed_refs =  'U3'
currency =  {'local_template': 'USD'}
fields =  {'datasheet': 'https://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT2232H.pdf',
 'footprint': 'Package_QFP:LQFP-64_10x10mm_P0.5mm',
 'libpart': 'Interface_USB:FT2232HL',
 'value': 'FT2232HL'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['U3']
url =  {'local_template': ''}

collapsed_refs =  'Y1'
currency =  {'local_template': 'USD'}
fields =  {'datasheet': 'http://www.raltron.com/wp-content/uploads/2017/08/RH100_SERIES-August-2017.pdf',
 'footprint': 'Crystal:Crystal_SMD_SeikoEpson_FA238V-4Pin_3.2x2.5mm',
 'libpart': 'Device:Crystal',
 'value': '12MHz'}
info_dist =  {'local_template': {}}
manfcat_codes =  {'arrow#': {None},
 'digikey#': {None},
 'farnell#': {None},
 'lcsc#': {None},
 'local_template#': {None},
 'manf#': {None},
 'mouser#': {None},
 'newark#': {None},
 'rs#': {None},
 'tme#': {None}}
moq =  {'local_template': None}
part_num =  {'local_template': ''}
price_tiers =  {'local_template': {}}
qty_avail =  {'local_template': None}
qty_increment =  {'local_template': None}
refs =  ['Y1']
url =  {'local_template': ''}

The last thing I could think to try is using pip to install:

C:\Program Files\KiCad\bin>pip3 install kicost
Requirement already satisfied: kicost in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\kicost-1.1.4-py3.7.egg (1.1.4)
Requirement already satisfied: beautifulsoup4>=4.3.2 in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\beautifulsoup4-4.9.1-py3.7.egg (from kicost) (4.9.1)
Requirement already satisfied: lxml>=3.7.2 in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\lxml-4.5.2-py3.7-win-amd64.egg (from kicost) (4.5.2)
Requirement already satisfied: XlsxWriter>=0.7.3 in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\xlsxwriter-1.3.2-py3.7.egg (from kicost) (1.3.2)
Requirement already satisfied: future in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\future-0.18.2-py3.7.egg (from kicost) (0.18.2)
Requirement already satisfied: tqdm>=4.30.0 in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\tqdm-4.48.2-py3.7.egg (from kicost) (4.48.2)
Requirement already satisfied: requests>=2.18.4 in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\requests-2.24.0-py3.7.egg (from kicost) (2.24.0)
Requirement already satisfied: CurrencyConverter>=0.13 in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\currencyconverter-0.14.2-py3.7.egg (from kicost) (0.14.2)
Requirement already satisfied: babel>=2.6 in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\babel-2.8.0-py3.7.egg (from kicost) (2.8.0)
Requirement already satisfied: soupsieve>1.2 in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\soupsieve-2.0.1-py3.7.egg (from beautifulsoup4>=4.3.2->kicost) (2.0.1)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\certifi-2020.6.20-py3.7.egg (from requests>=2.18.4->kicost) (2020.6.20)
Requirement already satisfied: chardet<4,>=3.0.2 in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\chardet-3.0.4-py3.7.egg (from requests>=2.18.4->kicost) (3.0.4)
Requirement already satisfied: idna<3,>=2.5 in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\idna-2.10-py3.7.egg (from requests>=2.18.4->kicost) (2.10)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\urllib3-1.25.10-py3.7.egg (from requests>=2.18.4->kicost) (1.25.10)
Requirement already satisfied: pytz>=2015.7 in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages\pytz-2020.1-py3.7.egg (from babel>=2.6->kicost) (2020.1)

C:\Program Files\KiCad\bin>pip3 install wxpython
Requirement already satisfied: wxpython in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages (4.1.0)
Requirement already satisfied: numpy; python_version >= "3.0" in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages (from wxpython) (1.17.4)
Requirement already satisfied: pillow in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages (from wxpython) (7.2.0)
Requirement already satisfied: six in c:\users\craig\appdata\local\programs\python\python37\lib\site-packages (from wxpython) (1.15.0)

C:\Program Files\KiCad\bin>kicost
Traceback (most recent call last):
  File "C:\Program Files\KiCad\bin\kicost-script.py", line 6, in <module>
    from pkg_resources import load_entry_point
  File "C:\Program Files\KiCad\lib\python2.7\site-packages/pkg_resources/__init__.py", line 3250, in <module>
    @_call_aside
  File "C:\Program Files\KiCad\lib\python2.7\site-packages/pkg_resources/__init__.py", line 3234, in _call_aside
    f(*args, **kwargs)
  File "C:\Program Files\KiCad\lib\python2.7\site-packages/pkg_resources/__init__.py", line 3263, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "C:\Program Files\KiCad\lib\python2.7\site-packages/pkg_resources/__init__.py", line 583, in _build_master
    ws.require(__requires__)
  File "C:\Program Files\KiCad\lib\python2.7\site-packages/pkg_resources/__init__.py", line 900, in require
    needed = self.resolve(parse_requirements(requirements))
  File "C:\Program Files\KiCad\lib\python2.7\site-packages/pkg_resources/__init__.py", line 786, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'soupsieve>1.2' distribution was not found and is required by beautifulsoup4

This is a new design created using KiCAD 5.1.6-1 under Windows 10. Schematic done, aiming for PCB layout.

I'm stumped. Any help to get KiCost running will be appreciated. KiCost looks like a really amazing time saver.

hildogjr commented 3 years ago

Related with #412

We are right with low people number to fix all the issues.

You still can use by the CLI commands: kicost -i FILE.xml.

Also, try to install using pip kicost instead easy_install kicost, there is a old issue (I think not present anymore).

craigarno commented 3 years ago

I understand not enough people/hours in day to fix things...

Tried pip kicost and easy_install kicost. Both say everything is fine, then KiCost doesn't work. KiCAD and the schematic in eeschema look great on both systems.

I tried kicost -i PicoTAP.xml and end up with a spreadsheet containing BOM information, but not part vendor/cost information from distributors.

craig@pluto:~/Project/PicoTAP% kicost -i PicoTAP.xml --overwrite -o PicoTAP.xlsx
No 'manf#' and 'rs#' field in any part: no information by 'RS Components'.
No 'manf#' and 'newark#' field in any part: no information by 'Newark'.
No 'manf#' and 'tme#' field in any part: no information by 'TME'.
No 'manf#' and 'arrow#' field in any part: no information by 'Arrow'.
No 'manf#' and 'farnell#' field in any part: no information by 'Farnell'.
No 'manf#' and 'digikey#' field in any part: no information by 'Digi-Key'.
No 'manf#' and 'mouser#' field in any part: no information by 'Mouser'.
No 'manf#' and 'lcsc#' field in any part: no information by 'LCSC'.
Progress: 0part [00:00, ?part/s]
craig@pluto:~/Project/PicoTAP%

I just tried kicost under Ubuntu 16.04 LTS. Similar if not the same problems: craig@pluto:~/Project/PicoTAP% kicost --info KiCost v.1.1.4.at Python 2.7.12.on Linux-4.4.0-186-generic-x86_64-with- Ubuntu-16.04-xenial(64bit).Graphical library: 3.0.2.0 gtk2 (classic).

craig@pluto:~/Project/PicoTAP% kicost                               
Traceback (most recent call last):
  File "/usr/local/bin/kicost", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/kicost/__main__.py", line 253, in main
    kicost_gui() # Use the user gui if no input is given.
  File "/usr/local/lib/python2.7/dist-packages/kicost/kicost_gui.py", line 1065, in kicost_gui
    frame = formKiCost(None)
  File "/usr/local/lib/python2.7/dist-packages/kicost/kicost_gui.py", line 540, in __init__
    self.set_properties()
  File "/usr/local/lib/python2.7/dist-packages/kicost/kicost_gui.py", line 866, in set_properties
    self.m_comboBox_currency.Insert(currencyList, 0)
  File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk2/wx/_core.py", line 12875, in Insert
    return _core_.ItemContainer_Insert(*args, **kwargs)
TypeError: String or Unicode type required

KiCost seems an important enough feature that I wonder if you could convince the KiCAD development team to support KiCost, kind of like Thunderbird did with Lightning calendar? KiCost is just as, if not more important, than 3D viewing. KiCost ranks up there with DRC and Annotation in my book.

hildogjr commented 3 years ago

The first error appear that kicost is not recognizing your manucture code field.

Did you fill some "manf#" field at Eschema? For now KiCost don't automatic identify parts second #17 .

hildogjr commented 3 years ago

Kicost support some distributors and right now depends on KiSpace service or Octopart account.

I think it dependency doesn't fill on KiCad idea.

sslupsky commented 3 years ago

I think I am seeing the same error of macOS:

Traceback (most recent call last):
  File "/usr/local/bin/kicost", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/site-packages/kicost/__main__.py", line 253, in main
    kicost_gui() # Use the user gui if no input is given.
  File "/usr/local/lib/python3.7/site-packages/kicost/kicost_gui.py", line 1065, in kicost_gui
    frame = formKiCost(None)
  File "/usr/local/lib/python3.7/site-packages/kicost/kicost_gui.py", line 367, in __init__
    fgSizer1.Add(self.m_gauge_process, 1, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5)
wx._core.wxAssertionError: C++ assertion "!(flags & (wxALIGN_BOTTOM | wxALIGN_CENTRE_VERTICAL)) || !(flags & (wxALIGN_RIGHT | wxALIGN_CENTRE_HORIZONTAL))" failed at /Users/robind/projects/bb2/dist-osx-py37/build/ext/wxWidgets/src/common/sizer.cpp(1453) in DoInsert(): wxEXPAND flag will be overridden by alignment flags

kicost --info:

KiCost v.1.1.4.at Python 3.7.7.on
Darwin-19.6.0-x86_64-i386-64bit(64bit).Graphical library: 4.1.0 osx-cocoa
(phoenix) wxWidgets 3.1.4.
sslupsky commented 3 years ago

I am however able to run it from the command line:

No information found for parts 'Q1,Q3,Q5' query `{'mpn': {'manufacturer': 'Vishay', 'part': 'Si2333DDS'}}`                                                      
No information found for parts 'F1-F6' query `{'mpn': {'manufacturer': 'Bel Fuse', 'part': '0ZCK0035FF2G'}}`                                                    
No information found for parts 'R2-R8,R15,R21,R36' query `{'mpn': {'manufacturer': 'Vishay', 'part': 'CRCW0402499KFK'}}`                                        
No information found for parts 'R9-R12,R37,R38,R46' query `{'mpn': {'manufacturer': 'Vishay', 'part': 'CRCW04021M00FK'}}`                                       
No information found for parts 'R17' query `{'mpn': {'manufacturer': 'Vishay', 'part': 'CRCW0402357KFK'}}`                                                      
No information found for parts 'R18' query `{'mpn': {'manufacturer': 'Vishay', 'part': 'CRCW0402274KFK'}}`                                                      
No information found for parts 'Q2,Q4,Q6-Q8' query `{'mpn': {'manufacturer': 'Diodes Inc.', 'part': 'DMG2302UK-7'}}`                                            
No information found for parts 'R16,R22' query `{'mpn': {'manufacturer': 'Vishay', 'part': 'CRCW06030000Z0'}}`                                                  
No information found for parts 'D1-D3' query `{'mpn': {'manufacturer': 'Diodes Inc.', 'part': 'D4V5H1U2LP1610-7'}}`                                             
No information found for parts 'R1' query `{'mpn': {'manufacturer': 'Vishay', 'part': 'CRCW0402191KFK'}}`                                                       
No information found for parts 'U4-U8,U16' query `{'mpn': {'manufacturer': 'Texas Instruments', 'part': 'TPS22917DBVR'}}`                                       
No information found for parts 'U1#2,U2#2,U3#2' query `{'mpn': {'manufacturer': 'Nexperia', 'part': '125'}}`                                                    
No information found for parts 'J3-J6' query `{'mpn': {'manufacturer': 'JST Connector', 'part': 'B2B-PH-K-S'}}`                                                 
No information found for parts 'J1,J2' query `{'mpn': {'manufacturer': 'Sullins Connector Solutions', 'part': 'PPPC141LFBN-RC'}}`                               
No information found for parts 'U9-U14' query `{'mpn': {'manufacturer': 'Diodes Inc.', 'part': 'DT2041-04SO-7'}}`                                               
No information found for parts 'J7,J8' query `{'mpn': {'manufacturer': 'JST Connector', 'part': 'B3B-PH-K-S'}}`                                                 
No information found for parts 'R23,R24,R27' query `{'mpn': {'manufacturer': 'Vishay', 'part': 'CRCW040210K0FK'}}`                                              
No information found for parts 'J10' query `{'mpn': {'manufacturer': 'JST Connector', 'part': 'BM08B-SRSS-TB'}}`                                                
No information found for parts 'U15' query `{'mpn': {'manufacturer': 'Texas Instruments', 'part': 'TPS62740DSSR'}}`                                             
No information found for parts 'R31' query `{'mpn': {'manufacturer': 'Vishay', 'part': 'CRCW040210M0FK'}}`                                                      
No information found for parts 'U19' query `{'mpn': {'manufacturer': 'Fujitsu', 'part': 'MB85RS1MTPNF-G'}}`                                                     
No information found for parts 'U20' query `{'mpn': {'manufacturer': 'Texas Instruments', 'part': 'TMP116AIDRVR'}}`                                             
No information found for parts 'U21,U22' query `{'mpn': {'manufacturer': 'Texas Instruments', 'part': 'ADS1115IDGS'}}`                                          
No information found for parts 'R49-R56' query `{'mpn': {'manufacturer': 'Vishay', 'part': 'CRCW0402100RFK'}}`                                                  
No information found for parts 'J12' query `{'mpn': {'manufacturer': 'METZ Connect', 'part': 'PR20B05VBDN'}}`                                                   
Progress: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 37/37 [00:11<00:00,  3.20part/s]

Are those queries returning "No information found" specific to a vendor or does it mean no info from any vendor?

Each part has a Digikey PN already so I will need to investigate why I am seeing the query problem.

hildogjr commented 3 years ago

Some problems can happens when the manufacture name on schematic is slightly different from real one (Vishay/vishay). --ignore_fields manf on KiCost call could some it.

I just catch in your log:

No information found for parts 'U1#2,U2#2,U3#2' query `{'mpn': {'manufacturer': 'Nexperia', 'part': '125'}}`

Have a look on https://github.com/xesscorp/KiCost/issues/416

sslupsky commented 3 years ago

Yeah, that line is weird. There are actually two lines in the generated excel file:


U1#1,U2#1,U3#1 | 74AUP1G98 - p1/2 |   | SOT-363_SC-70-6 | Nexperia | 74AUP1G98GW | 300 | $0.00 | $0.00 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  
-- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | --
U1#2,U2#2,U3#2 | 74AUP1G98 - p2/2 |   | SOT-363_SC-70-6 | Nexperia | 125 | 300 | $0.00 | $0.00 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |  

I am not sure why. Those parts are single "gate" devices. So, one part per package. Looking at the line in the excel file seems to suggest that there are multiple parts per device package?

hildogjr commented 3 years ago

https://github.com/xesscorp/KiCost/issues/416#issuecomment-641929079 will solve it.

hildogjr commented 3 years ago

Duplicated of #412

sslupsky commented 3 years ago

@hildogjr Yeah, I see that now. You can escape the comma with a backslash. I was wondering if that comma was going to cause a problem somewhere ;-) Thank you.

hildogjr commented 3 years ago

The comma is intended to create parts will "multiple parts", useful for connectors and other assembled parts.

sslupsky commented 3 years ago

Unfortunately, that creates a problem when using the other BOM tools ... they do not seem to recognize the escape and so the back slash is included the part number.

sslupsky commented 3 years ago

Seems like a KiCAD issue.

hildogjr commented 3 years ago

Other BOM tools will also not recognize the multiple part system.

So, maybe, que KiCost need some improvements in this cases.

sslupsky commented 3 years ago

Ah, ok. So, the comma in the part name is a KiCost feature, not an issue with KiCAD itself. Maybe KiCost could use a dedicated field for this purpose instead of using the part number?

hildogjr commented 3 years ago

Questions:

  1. Which field? Should be expansible for N multiple parts.
  2. How it will work? The actual system allow multiple parts with different quantities.
  3. Who could propose the implementation? We are lower of programmers.

I made this feature some (long) time ago, maybe there is a better way but I am too biased to put a opnion.

sslupsky commented 3 years ago

The user could specify the field with a command line parameter? Something like "--multipartfield" or something that makes sense. I'm not too familiar with the feature so do not have a good suggestion on exactly what to call it.

Is there a kicost.ini file? The KiBOM guys use an ini file for configuration of the tool for the project. So, for instance, you specify which field to use for the "do not fit" field in the ini file. They also use a field for linking to a part on the Digikey website. I've included a portion of the ini file below. The fit_field option in this example is "Config".

I think the feature would work the same way you do it now. I do not see any need to change the functionality. Just use a custom field specified by the user.

[BOM_OPTIONS]
; General BoM options here
; If 'ignore_dnf' option is set to 1, rows that are not to be fitted on the PCB will not be written to the BoM file
ignore_dnf = 1
; If '{opt}' option is set to 1, the schematic version number will be appended to the filename.
include_version_number = 1
; Field name used to determine if a particular part is to be fitted
fit_field = Config
; Make column to contain links to the Digi-Key web page for a component. (Note: Digi-Key links will only be generated for the HTML output format)
digikey_link = Digikey PN
; Specify output file name format, %O is the defined output name, %v is the version, %V is the variant name which will be ammended according to 'variant_file_name_format'.
output_file_name = %O_bom_%v%V
; Specify the variant file name format, this is a unique field as the variant is not always used/specified. When it is unused you will want to strip all of this.
variant_file_name_format = _(%V)
; Default number of boards to produce if none given on CLI with -n
number_boards = 1
; Default PCB variant if none given on CLI with -r
board_variant = "default"
; When set to 1, suppresses table/column headers and legends in the output file.
; May be useful for testing purposes.
hide_headers = 0
; When set to 1, PCB information (version, component count, etc) is not shown in the output file.
; Useful for saving space in the HTML output and for ensuring CSV output is machine-parseable.
hide_pcb_info = 0
hildogjr commented 3 years ago

This INI file was a good propose in the past. KiCost started to require a lot of parameters (in not straightforward use).

In that time, I made the GUI (with memory of the parameters). But it is now broken.

sslupsky commented 3 years ago

If one could ignore the "do not fit" components, that would be helpful as well. Or better yet, use a different field for "do not cost" and these components would be ignored and not included in the spreadsheet.

hildogjr commented 3 years ago

The first already exists --ignore_fileds NOPOP. Just ignore the field with such information.

sslupsky commented 3 years ago

I misunderstood that --ignore_fields just ignored the field, not the entire part? What I want to do is ignore the part (leave it out of the spreadsheet entirely). Things like "fiducials" are "parts" on the PCB but are not real parts. Mounting holes is another example of "parts" that I would prefer are not in the BOM.

hildogjr commented 3 years ago

Yes, correct just the field. But ignoring the DNP/NOPOP (filed used for not populated information yours), the part will be listed in the spreadsheet.

hildogjr commented 3 years ago

Yes. NOPOP / DNP fields as 1. KiCad Nightly ans next v6 will already provide this information (not as field). Until now, if NOPOP / DNP are defined, the part is excluded from spreadsheet. Butt will be include with used --ignore_fields to ignore this info.