Skip to content

Installation Issues on macOS Persist #308

@Xylopyrographer

Description

@Xylopyrographer

PROBLEM DESCRIPTION

Installation issues on macOS persist.

TO REPRODUCE

Am trying to remove completely use of the PlatformIO extension, in favour of solely using pioarduino.

Before starting, performed all the steps in my comment here: #235 (comment)

Then installed the pioarduino extension from within VSCode.

Then opened the sketch below, and selected as the environment: [env:piostable]

EXPECTED BEHAVIOUR

Expected the extension to install the ESP32 toolchain. Instead the pioarduino extension threw the following errors:

%23 Description of problem
  Leave a comment...

  BEFORE SUBMITTING, PLEASE SEARCH FOR DUPLICATES IN
  - https://github.com/pioarduino/pioarduino-vscode-ide/issues%3Fq=is%3Aissue 

  %23 Configuration

  VSCode: 1.104.3
  PIO IDE: v1.1.0
  System: Darwin, 24.6.0, x64

  %23 Exception

  Error: PlatformioException: Invalid path to PIO Home Contrib

    at /Users/xylo/.vscode/extensions/pioarduino.pioarduino-ide-1.1.0/node_modules/pioarduino-node-helpers/dist/index.js:1:10765
    at ChildProcess.f (/Users/xylo/.vscode/extensions/pioarduino.pioarduino-ide-1.1.0/node_modules/pioarduino-node-helpers/dist/index.js:1:4399)
    at ChildProcess.emit (node:events:518:28)
    at ChildProcess.emit (node:domain:489:12)
    at maybeClose (node:internal/child_process:1101:16)
    at Socket.<anonymous> (node:internal/child_process:456:11)
    at Socket.emit (node:events:518:28)
    at Socket.emit (node:domain:489:12)
    at Pipe.<anonymous> (node:net:346:12)

Message returned after selecting the environment in VSCode:

Verbose mode can be enabled via `-v, --verbose` option
Error: 'tool-esptoolpy' package directory not found: ''
========================== [FAILED] Took 2.04 seconds ==========================

Environment    Status    Duration
-------------  --------  ------------
piostable      FAILED    00:00:02.045
==================== 1 failed, 0 succeeded in 00:00:02.045 ====================

Error returned after selecting the pio321 environment:

Resolving pio321 dependencies...
Platform Manager: Installing https://github.com/pioarduino/platform-espressif32/releases/download/54.03.21-2/platform-espressif32.zip
Downloading 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Unpacking 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Platform Manager: platform@54.3.21 has been installed!
AttributeError: Traceback (most recent call last):
  File "/Users/xylo/.platformio/penv/lib/python3.13/site-packages/platformio/__main__.py", line 103, in main
    cli()  # pylint: disable=no-value-for-parameter
    ~~~^^
  File "/Users/xylo/.platformio/penv/lib/python3.13/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/Users/xylo/.platformio/penv/lib/python3.13/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/Users/xylo/.platformio/penv/lib/python3.13/site-packages/platformio/cli.py", line 85, in invoke
    return super().invoke(ctx)
           ~~~~~~~~~~~~~~^^^^^
  File "/Users/xylo/.platformio/penv/lib/python3.13/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/Users/xylo/.platformio/penv/lib/python3.13/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/Users/xylo/.platformio/penv/lib/python3.13/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xylo/.platformio/penv/lib/python3.13/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/Users/xylo/.platformio/penv/lib/python3.13/site-packages/platformio/project/commands/init.py", line 106, in project_init_cmd
    install_project_dependencies(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        options=dict(
        ^^^^^^^^^^^^^
    ...<3 lines>...
        )
        ^
    )
    ^
  File "/Users/xylo/.platformio/penv/lib/python3.13/site-packages/platformio/package/commands/install.py", line 107, in install_project_dependencies
    already_up_to_date = not install_project_env_dependencies(env, options)
                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/Users/xylo/.platformio/penv/lib/python3.13/site-packages/platformio/package/commands/install.py", line 132, in install_project_env_dependencies
    _install_project_env_platform(project_env, options),
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xylo/.platformio/penv/lib/python3.13/site-packages/platformio/package/commands/install.py", line 149, in _install_project_env_platform
    PlatformPackageManager().install(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        spec,
        ^^^^^
    ...<3 lines>...
        force=options.get("force"),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/xylo/.platformio/penv/lib/python3.13/site-packages/platformio/package/manager/platform.py", line 52, in install
    p = PlatformFactory.new(pkg)
  File "/Users/xylo/.platformio/penv/lib/python3.13/site-packages/platformio/platform/factory.py", line 79, in new
    platform_cls = getattr(
        cls.load_platform_module(
    ...<2 lines>...
        cls.get_clsname(platform_name),
    )
AttributeError: module 'platformio.platform.platform' has no attribute 'PlatformPlatform'

============================================================

An unexpected error occurred. Further steps:

* Verify that you have the latest version of PlatformIO using
  `python -m pip install -U platformio` command

* Try to find answer in FAQ Troubleshooting section
  https://docs.platformio.org/page/faq/index.html

* Report this problem to the developers
  https://github.com/platformio/platformio-core/issues

============================================================

SCREENSHOTS

If applicable, add screenshots to help explain your problem.

ADDITIONAL CONTEXT

System info:
Device: iMac, Retina 5K, 27-inch, 2020
Processor: 3.8 GHz 8-Core Intel Core i7
Memory: 128 GB 2400 MHz DDR4
macOS: 15.7.1 (24G231)

VSCode:
Version: 1.104.3
Commit: 385651c938df8a906869babee516bffd0ddb9829
Date: 2025-10-02T12:30:51.747Z
Electron: 37.3.1
ElectronBuildId: 12404162
Chromium: 138.0.7204.235
Node.js: 22.18.0
V8: 13.8.258.31-electron.0
OS: Darwin x64 24.6.0

main.cpp file:

// Testing fresh install of pioarduino with a mix of Arduino and esp32 boards.

#include <Arduino.h>

// put function declarations here:
int myFunction( int, int );

void setup() {
    // put your setup code here, to run once:
    Serial.println( " Here we go..." );
    delay ( 2000 );
}

void loop() {
    // put your main code here, to run repeatedly:
    for ( int i = 0; i < 100; i++ ) {
        for ( int j = 0; j < 100; j++ ) {
            Serial.println( myFunction( i, j ) );
            delay( 750 );
        }
        Serial.println( "End of the \"j\" loop. Incrementing \"i\" and repeating..." );
    }
    Serial.println( "End of the loops - restarting..." );
}

// put function definitions here:
int myFunction( int x, int y ) {
    return ( x + y );
}

platformio.ini file:

; PlatformIO Project Configuration File

[env:arduinoNano]
platform = atmelavr
board = nanoatmega328new
framework = arduino
monitor_speed = 9600

[env:esp32base]
board = esp32dev
framework = arduino
monitor_speed = 115200

[env:piostable]
extends = esp32base
platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip

[env:pio307]
extends = esp32base
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.07/platform-espressif32.zip

[env:pio321]
extends = esp32base
platform = https://github.com/pioarduino/platform-espressif32/releases/download/54.03.21-2/platform-espressif32.zip

Python installation:

~ % which python 
python: aliased to python3

~ % which python3
/usr/local/bin/python3

~ % python --version
Python 3.13.7

FWIW, selecting env:arduinoNano works fine.

Be glad to provide any other info.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions