Problem with Python 3.8+ on Windows when network drive is used
See original GitHub issueThe cause of the issue: https://bugs.python.org/issue37993
Solution 1
- Open Windows Registry
regedit.exe
- Create a new key named
Command Processor
atHKEY_CURRENT_USER\Software\Microsoft
- Create a new
DWORD (32-bit) Value
namedDisableUNCCheck
- Set the value of
DisableUNCCheck
to1
(Hex) - Restart your Windows machine.
Solution 2
- Download our portable Python 3.7
- Extract and replace contents in
%HOMEPATH%/.platformio/python3
. - Remove
%HOMEPATH%/.platformio/penv
folder. - Restart VSCode.
Configuration
Operating system: Windows_NT x64 10.0.17763
PlatformIO Version (platformio --version
):
4.2.2b1
and
4.2.1
Python Version 3.8 32bit
Description of problem
During compilation I get the Python Traceback UnicodeDecodeError: ‘charmap’ codec can’t decode byte.
Full Message:
> Executing task in folder IR_Sender_WB: C:\Users\***\.platformio\penv\Scripts\platformio.exe run <
Processing nodemcuv2 (platform: espressif8266; board: nodemcuv2; framework: arduino)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/nodemcuv2.html
PLATFORM: Espressif 8266 2.3.3 > NodeMCU 1.0 (ESP-12E Module)
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES:
- framework-arduinoespressif8266 3.20603.200130 (2.6.3)
- tool-esptool 1.413.0 (4.13)
- tool-esptoolpy 1.20800.0 (2.8.0)
- toolchain-xtensa 2.40802.191122 (4.8.2)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 31 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <IRremoteESP8266> 2.7.4
Building in release mode
Compiling .pio\build\nodemcuv2\src\main.cpp.o
Generating LD script .pio\build\nodemcuv2\ld\local.eagle.app.v6.common.ld
Exception in thread Thread-3:
Traceback (most recent call last):
File "C:\Users\***\AppData\Local\Programs\Python\Python38-32\lib\threading.py", line 932, in _bootstrap_inner
self.run()
File "C:\Users\***\AppData\Local\Programs\Python\Python38-32\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "c:\users\***\.platformio\penv\lib\site-packages\platformio\proc.py", line 46, in run
self.do_reading()
File "c:\users\***\.platformio\penv\lib\site-packages\platformio\proc.py", line 69, in do_reading
for byte in iter(lambda: self._pipe_reader.read(1), ""):
File "c:\users\***\.platformio\penv\lib\site-packages\platformio\proc.py", line 69, in <lambda>
for byte in iter(lambda: self._pipe_reader.read(1), ""):
File "C:\Users\***\AppData\Local\Programs\Python\Python38-32\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 167: character maps to <undefined>
Compiling .pio\build\nodemcuv2\lib70a\IRremoteESP8266\IRac.cpp.o
Compiling .pio\build\nodemcuv2\lib70a\IRremoteESP8266\IRrecv.cpp.o
Compiling .pio\build\nodemcuv2\lib70a\IRremoteESP8266\IRsend.cpp.o
Compiling .pio\build\nodemcuv2\lib70a\IRremoteESP8266\IRtext.cpp.o
Compiling .pio\build\nodemcuv2\lib70a\IRremoteESP8266\IRtimer.cpp.o
Compiling .pio\build\nodemcuv2\lib70a\IRremoteESP8266\IRutils.cpp.o
======================================================================================== [FAILED] Took 5.42 seconds ========================================================================================
The terminal process terminated with exit code: 1
Terminal will be reused by tasks, press any key to close it.
If problems with PlatformIO Build System:
The content of platformio.ini
:
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:nodemcuv2]
platform = espressif8266
board = nodemcuv2
framework = arduino
monitor_speed = 115200
Additional info
On another PC with Python version 3.7 there are no problems compiling. Here are the data of the PC where there is no problem:
Version: 1.43.0 (user setup) Commit: 78a4c91400152c0f27ba4d363eb56d2835f9903a Date: 2020-03-09T19:47:57.235Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.17763
PlatformIO: Core 4.2.1, Home 3.1.1
Issue Analytics
- State:
- Created 4 years ago
- Reactions:2
- Comments:68 (23 by maintainers)
Top Results From Across the Web
os.path.realpath on Windows resolves mapped network drives
Windows Python should do something similar to ensure the consistency of sys.executable with realpath(sys.executable). > different from mapped ...
Read more >Network drive (mapped) access issue for python script running ...
I am trying to run a python (3.8.8) script with Windows task scheduler. ... Mapped drive is used to save files copied from...
Read more >Can't install Python 3.8 on Windows 10 - Super User
I tried to install Python in a new folder but got an error because another installation was going on (it wasn't another Python...
Read more >PlatformIO now failing on mapped network drives
Problem with Python 3.8 + on Windows when network drive is used ... ever use PlatformIO on Windows and don't have a network...
Read more >How to Install Python on Windows in 5 Minutes - DataFlair
Possible Issues After Python Installation · The Python setup may fail if you don't have Windows Service Pack 1 (SP1) installed on your...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
After long fiddeling around with different python versions i give up… with older python verisons the PIO home screen will not work!! Looking further in the problem that cmd.exe is not handling UNC names i found a very old KB
https://web.archive.org/web/20150518102450/https://support.microsoft.com/en-us/kb/156276
It was written for windows XP and NT but never the less its WORKING! under win10! HKEY_CURRENT_USER\Software\Microsoft\Command Processor <— create this key “Command Processor” add the value “DisableUNCCheck” REG_DWORD and set the value to 0 x 1 (Hex).
@kbfifi , please let me know if its working for you as well
Neither fix worked for me. The first one made it end up making the path within the mapped network drive, Seems it thinks that the space in the path that is mapped to the drive letter is a seperator because everything after that was created in the projects folder and had some things put into it as it was failing.
the second one seemed to have all my work undone by downloading python over what I replaced it with when I pressed build.
Begrudgingly moved my project onto the local drive just so I could build it. This is a showstopper for the use of platformio for me as I rely on my files being on a nas so they are accessible on all computers