RobotPy 2024.1.1 available

This is the first year that Python has been an officially supported language. Lots of changes this year.

  • The biggest change is instead of python robot.py XXX, you run python -m robotpy XXX
  • The installation process will be much smoother! Just run python -m robotpy sync and python -m robotpy deploy in a directory with your robot code and everything will get downloaded and installed on the rio.
  • commands2 is not available yet, but hopefully soon

I am still working on updating the robotpy documentation site, but lots of documentation has been done on frc-docs! See Add RobotPy setup to zero-to-robot by virtuald Β· Pull Request #2501 Β· wpilibsuite/frc-docs Β· GitHub for new documentation on defining requirements, deploy, and more.

9 Likes

Note that there is a 2024-compatible version of robotpy-commands-v2 available, it’s just marked as a beta release at this time because it’s incomplete and I’m not comfortable saying that it’s good to go. If you want to use it, you can set up the following pyproject.toml next to your robot.py:

#
# Use this configuration file to control what RobotPy packages are installed
# on your RoboRIO
#

[tool.robotpy]

# Version of robotpy this project depends on
robotpy_version = "2024.1.1"

# Which extra RobotPy components should be installed
# -> equivalent to `pip install robotpy[extra1, ...]
robotpy_extras = [
    # "all"
    # "apriltag"
    # "commands2"
    # "cscore"
    # "navx"
    # "pathplannerlib"
    # "phoenix5"
    # "phoenix6"
    # "playingwithfusion"
    # "rev"
    # "romi"
    # "sim"
]

# Other pip packages to install
requires = [
    "robotpy-commands-v2==2024.0.0b4"
]

After that, run python -m robotpy sync and it should download/install commands v2 + the kickoff release.

1 Like

When I run py -m robotpy sync, for some reason my terminal prompt appears before the end of the script’s output, so it appears as if the program is hanging, when it actually completes successfully. Not a huge issue, but I spent a few mins realizing it’s not just the installer hanging.

c:\Users\me\ri3d-2024-py>py -m robotpy sync
01:48:23:939 INFO    : robotpy.installer   : RobotPy Installer 2024.0.2
[more logs]
c:\Users\me\ri3d-2024-py>Requirement already satisfied: robotpy==2024.1.1 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (2024.1.1)
[more logs]
Requirement already satisfied: pycparser in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from cffi>=1.12->cryptography>=3.3->paramiko->robotpy-installer<2025,>=2024.0.2->robotpy==2024.1.1) (2.21)

^ User prompt is sandwiched in the middle of a bunch of logs

Also it seems like the rev extra doesn’t have a 2024 release yet

INFO: pip is looking at multiple versions of robotpy[rev] to determine which version is compatible with other requirements. This could take a while.
ERROR: Ignored the following versions that require a different python version: 2023.0.0b4.post1 Requires-Python >=3.7,<3.12; 2023.0.0b4.post2 Requires-Python >=3.7,<3.12; 2023.0.0b4.post3 Requires-Python >=3.7,<3.12; 2023.0.0b4.post4 Requires-Python >=3.7,<3.12; 2023.0.0b7 Requires-Python >=3.7,<3.12; 2023.1.1 Requires-Python >=3.7,<3.12; 2023.2.1 Requires-Python >=3.7,<3.12; 2023.2.1.1 Requires-Python >=3.7,<3.12; 2023.2.1.2 Requires-Python >=3.7,<3.12; 2023.2.1.3 Requires-Python >=3.7,<3.12; 2023.2.1.4 Requires-Python >=3.7,<3.12; 2023.3.1.0 Requires-Python >=3.7,<3.12; 2023.3.2.1 Requires-Python >=3.7,<3.12; 2023.3.2.2 Requires-Python >=3.7,<3.12; 2023.3.2.3 Requires-Python >=3.7,<3.12; 2023.4.1 Requires-Python >=3.7,<3.12; 2023.4.2 Requires-Python >=3.7,<3.12; 2023.4.2.1 Requires-Python >=3.7,<3.12; 2023.4.2.2 Requires-Python >=3.7,<3.12; 2023.4.3.0 Requires-Python >=3.7,<3.12; 2023.4.3.1 Requires-Python >=3.7,<3.12
ERROR: Could not find a version that satisfies the requirement error-robotpy-rev-not-available-yet; extra == "rev" (from robotpy[rev]) (from versions: none)
ERROR: No matching distribution found for error-robotpy-rev-not-available-yet; extra == "rev"
ERROR: pip download failed

Try upgrading to 2024.1.1.1

pip gave an error when trying to upgrade:

C:\Users\me\Documents\GitHub\ri3d-2024-py>py -m pip install --upgrade robotpy
Requirement already satisfied: robotpy in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (2024.1.1)
Collecting robotpy
  Using cached robotpy-2024.1.1.1-py3-none-any.whl.metadata (6.7 kB)
Collecting robotpy-wpiutil==2024.1.1.1 (from robotpy)
  Using cached robotpy_wpiutil-2024.1.1.1-cp312-cp312-win_amd64.whl.metadata (294 bytes)
Collecting robotpy-wpinet==2024.1.1.1 (from robotpy)
  Using cached robotpy_wpinet-2024.1.1.1-cp312-cp312-win_amd64.whl.metadata (709 bytes)
Collecting robotpy-wpimath==2024.1.1.1 (from robotpy)
  Using cached robotpy_wpimath-2024.1.1.1-cp312-cp312-win_amd64.whl.metadata (716 bytes)
Collecting pyntcore==2024.1.1.1 (from robotpy)
  Using cached pyntcore-2024.1.1.1-cp312-cp312-win_amd64.whl.metadata (493 bytes)
Collecting robotpy-hal==2024.1.1.1 (from robotpy)
  Using cached robotpy_hal-2024.1.1.1-cp312-cp312-win_amd64.whl.metadata (520 bytes)
Collecting wpilib==2024.1.1.1 (from robotpy)
  Using cached wpilib-2024.1.1.1-cp312-cp312-win_amd64.whl.metadata (866 bytes)
Requirement already satisfied: robotpy-wpilib-utilities<2025,>=2024.0.0 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from robotpy) (2024.0.0)
Collecting robotpy-halsim-gui==2024.1.1.1 (from robotpy)
  Using cached robotpy_halsim_gui-2024.1.1.1-cp312-cp312-win_amd64.whl.metadata (985 bytes)
Requirement already satisfied: robotpy-installer<2025,>=2024.0.2 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from robotpy) (2024.0.2)
Requirement already satisfied: pyfrc<2025,>=2024.0.0 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from robotpy) (2024.0.1)      
Requirement already satisfied: robotpy-cli~=2024.0b in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from wpilib==2024.1.1.1->robotpy) (2024.0.0)
Requirement already satisfied: pytest>=3.9 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from pyfrc<2025,>=2024.0.0->robotpy) (7.4.4)
Requirement already satisfied: pytest-reraise in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from pyfrc<2025,>=2024.0.0->robotpy) 
(2.1.2)
Requirement already satisfied: pint>=0.11.0 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from pyfrc<2025,>=2024.0.0->robotpy) (0.23)
Requirement already satisfied: packaging in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from robotpy-installer<2025,>=2024.0.2->robotpy) (23.2)
Requirement already satisfied: paramiko in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from robotpy-installer<2025,>=2024.0.2->robotpy) (3.4.0)
Requirement already satisfied: pynetconsole~=2.0.2 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from robotpy-installer<2025,>=2024.0.2->robotpy) (2.0.4)
Requirement already satisfied: tomli in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from robotpy-installer<2025,>=2024.0.2->robotpy) (2.0.1)
Requirement already satisfied: typing-extensions in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from pint>=0.11.0->pyfrc<2025,>=2024.0.0->robotpy) (4.9.0)
Requirement already satisfied: iniconfig in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from pytest>=3.9->pyfrc<2025,>=2024.0.0->robotpy) (2.0.0)
Requirement already satisfied: pluggy<2.0,>=0.12 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from pytest>=3.9->pyfrc<2025,>=2024.0.0->robotpy) (1.3.0)
Requirement already satisfied: colorama in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from pytest>=3.9->pyfrc<2025,>=2024.0.0->robotpy) (0.4.6)
Requirement already satisfied: bcrypt>=3.2 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from paramiko->robotpy-installer<2025,>=2024.0.2->robotpy) (4.1.2)
Requirement already satisfied: cryptography>=3.3 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from paramiko->robotpy-installer<2025,>=2024.0.2->robotpy) (41.0.7)
Requirement already satisfied: pynacl>=1.5 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from paramiko->robotpy-installer<2025,>=2024.0.2->robotpy) (1.5.0)
Requirement already satisfied: cffi>=1.12 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from cryptography>=3.3->paramiko->robotpy-installer<2025,>=2024.0.2->robotpy) (1.16.0)
Requirement already satisfied: pycparser in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from cffi>=1.12->cryptography>=3.3->paramiko->robotpy-installer<2025,>=2024.0.2->robotpy) (2.21)
Using cached robotpy-2024.1.1.1-py3-none-any.whl (2.4 kB)
Using cached pyntcore-2024.1.1.1-cp312-cp312-win_amd64.whl (1.6 MB)
Using cached robotpy_hal-2024.1.1.1-cp312-cp312-win_amd64.whl (966 kB)
Using cached robotpy_halsim_gui-2024.1.1.1-cp312-cp312-win_amd64.whl (8.5 MB)
Using cached robotpy_wpimath-2024.1.1.1-cp312-cp312-win_amd64.whl (4.4 MB)
Using cached robotpy_wpinet-2024.1.1.1-cp312-cp312-win_amd64.whl (947 kB)
Using cached robotpy_wpiutil-2024.1.1.1-cp312-cp312-win_amd64.whl (3.7 MB)
Using cached wpilib-2024.1.1.1-cp312-cp312-win_amd64.whl (3.6 MB)
Installing collected packages: robotpy-wpiutil, robotpy-wpinet, robotpy-wpimath, robotpy-hal, pyntcore, wpilib, robotpy-halsim-gui, robotpy
  Attempting uninstall: robotpy-wpiutil
    Found existing installation: robotpy-wpiutil 2024.1.1.0
    Uninstalling robotpy-wpiutil-2024.1.1.0:
      Successfully uninstalled robotpy-wpiutil-2024.1.1.0
  Attempting uninstall: robotpy-wpinet
    Found existing installation: robotpy-wpinet 2024.1.1.0
    Uninstalling robotpy-wpinet-2024.1.1.0:
      Successfully uninstalled robotpy-wpinet-2024.1.1.0
  Attempting uninstall: robotpy-wpimath
    Found existing installation: robotpy-wpimath 2024.1.1.0
    Uninstalling robotpy-wpimath-2024.1.1.0:
      Successfully uninstalled robotpy-wpimath-2024.1.1.0
  Attempting uninstall: robotpy-hal
    Found existing installation: robotpy-hal 2024.1.1.0
    Uninstalling robotpy-hal-2024.1.1.0:
      Successfully uninstalled robotpy-hal-2024.1.1.0
  Attempting uninstall: pyntcore
    Found existing installation: pyntcore 2024.1.1.0
    Uninstalling pyntcore-2024.1.1.0:
      Successfully uninstalled pyntcore-2024.1.1.0
  Attempting uninstall: wpilib
    Found existing installation: wpilib 2024.1.1.0
    Uninstalling wpilib-2024.1.1.0:
      Successfully uninstalled wpilib-2024.1.1.0
  Attempting uninstall: robotpy-halsim-gui
    Found existing installation: robotpy-halsim-gui 2024.1.1.0
    Uninstalling robotpy-halsim-gui-2024.1.1.0:
      Successfully uninstalled robotpy-halsim-gui-2024.1.1.0
  Attempting uninstall: robotpy
    Found existing installation: robotpy 2024.1.1
    Uninstalling robotpy-2024.1.1:
      Successfully uninstalled robotpy-2024.1.1
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
robotpy-apriltag 2024.1.1.0 requires robotpy-wpimath==2024.1.1.0, but you have robotpy-wpimath 2024.1.1.1 which is incompatible.
robotpy-apriltag 2024.1.1.0 requires robotpy-wpiutil==2024.1.1.0, but you have robotpy-wpiutil 2024.1.1.1 which is incompatible.
robotpy-halsim-ds-socket 2024.1.1.0 requires robotpy-hal==2024.1.1.0, but you have robotpy-hal 2024.1.1.1 which is incompatible.
robotpy-halsim-ds-socket 2024.1.1.0 requires robotpy-wpinet==2024.1.1.0, but you have robotpy-wpinet 2024.1.1.1 which is incompatible.
robotpy-halsim-ws 2024.1.1.0 requires robotpy-hal==2024.1.1.0, but you have robotpy-hal 2024.1.1.1 which is incompatible.
robotpy-halsim-ws 2024.1.1.0 requires robotpy-wpinet==2024.1.1.0, but you have robotpy-wpinet 2024.1.1.1 which is incompatible.
Successfully installed pyntcore-2024.1.1.1 robotpy-2024.1.1.1 robotpy-hal-2024.1.1.1 robotpy-halsim-gui-2024.1.1.1 robotpy-wpimath-2024.1.1.1 robotpy-wpinet-2024.1.1.1 robotpy-wpiutil-2024.1.1.1 wpilib-2024.1.1.1

I still tried to run sync after though, since pip seemed to have upgraded some things:

C:\Users\me\Documents\GitHub\ri3d-2024-py>py -m robotpy sync
02:11:10:704 INFO    : robotpy.installer   : RobotPy Installer 2024.0.2
02:11:10:705 INFO    : robotpy.installer   : -> caching files at C:\Users\me\wpilib\2024\robotpy
02:11:10:708 INFO    : sync                : Robot project requirements:
02:11:10:709 INFO    : sync                : - robotpy[rev]==2024.1.1
02:11:10:709 INFO    : sync                : Downloading Python for RoboRIO
Downloading https://github.com/robotpy/roborio-python/releases/download/2024-3.12.1-r1/python312_3.12.1-r1_cortexa9-vfpv3.ipk
Not modified
02:11:11:338 INFO    : sync                : Downloading RoboRIO python packages
Looking in indexes: https://pypi.org/simple, https://wpilib.jfrog.io/artifactory/api/pypi/wpilib-python-release-2024/simple
Collecting robotpy==2024.1.1 (from robotpy[rev]==2024.1.1)
  File was already downloaded c:\users\me\wpilib\2024\robotpy\pip_cache\robotpy-2024.1.1-py3-none-any.whl
Collecting robotpy-wpiutil==2024.1.1.0 (from robotpy==2024.1.1->robotpy[rev]==2024.1.1)
  File was already downloaded c:\users\me\wpilib\2024\robotpy\pip_cache\robotpy_wpiutil-2024.1.1.0-cp312-cp312-linux_roborio.whl
Collecting robotpy-wpinet==2024.1.1.0 (from robotpy==2024.1.1->robotpy[rev]==2024.1.1)
  File was already downloaded c:\users\me\wpilib\2024\robotpy\pip_cache\robotpy_wpinet-2024.1.1.0-cp312-cp312-linux_roborio.whl
Collecting robotpy-wpimath==2024.1.1.0 (from robotpy==2024.1.1->robotpy[rev]==2024.1.1)
  File was already downloaded c:\users\me\wpilib\2024\robotpy\pip_cache\robotpy_wpimath-2024.1.1.0-cp312-cp312-linux_roborio.whl
Collecting pyntcore==2024.1.1.0 (from robotpy==2024.1.1->robotpy[rev]==2024.1.1)
  File was already downloaded c:\users\me\wpilib\2024\robotpy\pip_cache\pyntcore-2024.1.1.0-cp312-cp312-linux_roborio.whl
Collecting robotpy-hal==2024.1.1.0 (from robotpy==2024.1.1->robotpy[rev]==2024.1.1)
  File was already downloaded c:\users\me\wpilib\2024\robotpy\pip_cache\robotpy_hal-2024.1.1.0-cp312-cp312-linux_roborio.whl
Collecting wpilib==2024.1.1.0 (from robotpy==2024.1.1->robotpy[rev]==2024.1.1)
  File was already downloaded c:\users\me\wpilib\2024\robotpy\pip_cache\wpilib-2024.1.1.0-cp312-cp312-linux_roborio.whl
Collecting robotpy-wpilib-utilities<2025,>=2024.0.0 (from robotpy==2024.1.1->robotpy[rev]==2024.1.1)
  File was already downloaded c:\users\me\wpilib\2024\robotpy\pip_cache\robotpy_wpilib_utilities-2024.0.0-py3-none-any.whl
INFO: pip is looking at multiple versions of robotpy[rev] to determine which version is compatible with other requirements. This could take a while.
ERROR: Ignored the following versions that require a different python version: 2023.0.0b4.post1 Requires-Python >=3.7,<3.12; 2023.0.0b4.post2 Requires-Python >=3.7,<3.12; 2023.0.0b4.post3 Requires-Python >=3.7,<3.12; 2023.0.0b4.post4 Requires-Python >=3.7,<3.12; 2023.0.0b7 Requires-Python >=3.7,<3.12; 2023.1.1 Requires-Python >=3.7,<3.12; 2023.2.1 Requires-Python >=3.7,<3.12; 2023.2.1.1 Requires-Python >=3.7,<3.12; 2023.2.1.2 Requires-Python >=3.7,<3.12; 2023.2.1.3 Requires-Python >=3.7,<3.12; 2023.2.1.4 Requires-Python >=3.7,<3.12; 2023.3.1.0 Requires-Python >=3.7,<3.12; 2023.3.2.1 Requires-Python >=3.7,<3.12; 2023.3.2.2 Requires-Python >=3.7,<3.12; 2023.3.2.3 Requires-Python >=3.7,<3.12; 2023.4.1 Requires-Python >=3.7,<3.12; 2023.4.2 Requires-Python >=3.7,<3.12; 2023.4.2.1 Requires-Python >=3.7,<3.12; 2023.4.2.2 Requires-Python >=3.7,<3.12; 2023.4.3.0 Requires-Python >=3.7,<3.12; 2023.4.3.1 Requires-Python >=3.7,<3.12
ERROR: Could not find a version that satisfies the requirement error-robotpy-rev-not-available-yet; extra == "rev" (from robotpy[rev]) (from versions: none)
ERROR: No matching distribution found for error-robotpy-rev-not-available-yet; extra == "rev"
ERROR: pip download failed

Ah interesting. Will have to make some bug reports to think about these.

With regard to the pip errors, you must have previously installed robotpy[all]? Since the second time you only installed robotpy, it didn’t include upgrades for those components.

The sync process automatically writes out a pyproject.toml for you, which has the current version of robotpy in it. So – when you ran the sync, it downgraded you to 2024.1.1.

Update 2024.1.1.1 in the pyproject.toml, and run sync again.

1 Like

Would it be less disconcerting to pop up a new console and run pip in that?

I reran py -m robotpy init (which updated the robotpy_version) and uncommented rev, and now py -m robotpy sync successfully installs rev! Thanks for the quick update

I’ll probably try running some code on our ri3d bot during the day today or early tomorrow, and will update here with more issues and/or a link to our code for teams to reference

Also for the pip output I accidentally copied the output from the second time I ran pip (to make sure it wasn’t a fluke)

Output from the first time I ran pip install --upgrade
C:\Users\me\Documents\GitHub\ri3d-2024-py>py -m pip install --upgrade robotpy
Requirement already satisfied: robotpy in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (2024.1.1)
Collecting robotpy
  Downloading robotpy-2024.1.1.1-py3-none-any.whl.metadata (6.7 kB)
Collecting robotpy-wpiutil==2024.1.1.1 (from robotpy)
  Downloading robotpy_wpiutil-2024.1.1.1-cp312-cp312-win_amd64.whl.metadata (294 bytes)
Collecting robotpy-wpinet==2024.1.1.1 (from robotpy)
  Downloading robotpy_wpinet-2024.1.1.1-cp312-cp312-win_amd64.whl.metadata (709 bytes)
Collecting robotpy-wpimath==2024.1.1.1 (from robotpy)
  Downloading robotpy_wpimath-2024.1.1.1-cp312-cp312-win_amd64.whl.metadata (716 bytes)
Collecting pyntcore==2024.1.1.1 (from robotpy)
  Downloading pyntcore-2024.1.1.1-cp312-cp312-win_amd64.whl.metadata (493 bytes)
Collecting robotpy-hal==2024.1.1.1 (from robotpy)
  Downloading robotpy_hal-2024.1.1.1-cp312-cp312-win_amd64.whl.metadata (520 bytes)
Collecting wpilib==2024.1.1.1 (from robotpy)
  Downloading wpilib-2024.1.1.1-cp312-cp312-win_amd64.whl.metadata (866 bytes)
Requirement already satisfied: robotpy-wpilib-utilities<2025,>=2024.0.0 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from robotpy) (2024.0.0)
Collecting robotpy-halsim-gui==2024.1.1.1 (from robotpy)
  Downloading robotpy_halsim_gui-2024.1.1.1-cp312-cp312-win_amd64.whl.metadata (985 bytes)
Requirement already satisfied: robotpy-installer<2025,>=2024.0.2 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from robotpy) (2024.0.2)
Requirement already satisfied: pyfrc<2025,>=2024.0.0 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from robotpy) (2024.0.1)
Requirement already satisfied: robotpy-cli~=2024.0b in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from wpilib==2024.1.1.1->robotpy) (2024.0.0)
Requirement already satisfied: pytest>=3.9 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from pyfrc<2025,>=2024.0.0->robotpy) (7.4.4)
Requirement already satisfied: pytest-reraise in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from pyfrc<2025,>=2024.0.0->robotpy) 
(2.1.2)
Requirement already satisfied: pint>=0.11.0 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from pyfrc<2025,>=2024.0.0->robotpy) (0.23)
Requirement already satisfied: packaging in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from robotpy-installer<2025,>=2024.0.2->robotpy) (23.2)
Requirement already satisfied: paramiko in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from robotpy-installer<2025,>=2024.0.2->robotpy) (3.4.0)
Requirement already satisfied: pynetconsole~=2.0.2 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from robotpy-installer<2025,>=2024.0.2->robotpy) (2.0.4)
Requirement already satisfied: tomli in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from robotpy-installer<2025,>=2024.0.2->robotpy) (2.0.1)
Requirement already satisfied: typing-extensions in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from pint>=0.11.0->pyfrc<2025,>=2024.0.0->robotpy) (4.9.0)
Requirement already satisfied: iniconfig in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from pytest>=3.9->pyfrc<2025,>=2024.0.0->robotpy) (2.0.0)
Requirement already satisfied: pluggy<2.0,>=0.12 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from pytest>=3.9->pyfrc<2025,>=2024.0.0->robotpy) (1.3.0)
Requirement already satisfied: colorama in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from pytest>=3.9->pyfrc<2025,>=2024.0.0->robotpy) (0.4.6)
Requirement already satisfied: bcrypt>=3.2 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from paramiko->robotpy-installer<2025,>=2024.0.2->robotpy) (4.1.2)
Requirement already satisfied: cryptography>=3.3 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from paramiko->robotpy-installer<2025,>=2024.0.2->robotpy) (41.0.7)
Requirement already satisfied: pynacl>=1.5 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from paramiko->robotpy-installer<2025,>=2024.0.2->robotpy) (1.5.0)
Requirement already satisfied: cffi>=1.12 in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from cryptography>=3.3->paramiko->robotpy-installer<2025,>=2024.0.2->robotpy) (1.16.0)
Requirement already satisfied: pycparser in c:\users\me\appdata\local\programs\python\python312\lib\site-packages (from cffi>=1.12->cryptography>=3.3->paramiko->robotpy-installer<2025,>=2024.0.2->robotpy) (2.21)
Downloading robotpy-2024.1.1.1-py3-none-any.whl (2.4 kB)
Downloading pyntcore-2024.1.1.1-cp312-cp312-win_amd64.whl (1.6 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 2.8 MB/s eta 0:00:00
Downloading robotpy_hal-2024.1.1.1-cp312-cp312-win_amd64.whl (966 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 966.8/966.8 kB 2.6 MB/s eta 0:00:00
Downloading robotpy_halsim_gui-2024.1.1.1-cp312-cp312-win_amd64.whl (8.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.5/8.5 MB 2.6 MB/s eta 0:00:00
Downloading robotpy_wpimath-2024.1.1.1-cp312-cp312-win_amd64.whl (4.4 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 2.8 MB/s eta 0:00:00
Downloading robotpy_wpinet-2024.1.1.1-cp312-cp312-win_amd64.whl (947 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 947.2/947.2 kB 2.5 MB/s eta 0:00:00
Downloading robotpy_wpiutil-2024.1.1.1-cp312-cp312-win_amd64.whl (3.7 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.7/3.7 MB 2.7 MB/s eta 0:00:00
Downloading wpilib-2024.1.1.1-cp312-cp312-win_amd64.whl (3.6 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.6/3.6 MB 2.5 MB/s eta 0:00:00
Installing collected packages: robotpy-wpiutil, robotpy-wpinet, robotpy-wpimath, robotpy-hal, pyntcore, wpilib, robotpy-halsim-gui, robotpy
  Attempting uninstall: robotpy-wpiutil
    Found existing installation: robotpy-wpiutil 2024.1.1.0
    Uninstalling robotpy-wpiutil-2024.1.1.0:
      Successfully uninstalled robotpy-wpiutil-2024.1.1.0
  Attempting uninstall: robotpy-wpinet
    Found existing installation: robotpy-wpinet 2024.1.1.0
    Uninstalling robotpy-wpinet-2024.1.1.0:
      Successfully uninstalled robotpy-wpinet-2024.1.1.0
  Attempting uninstall: robotpy-wpimath
    Found existing installation: robotpy-wpimath 2024.1.1.0
    Uninstalling robotpy-wpimath-2024.1.1.0:
      Successfully uninstalled robotpy-wpimath-2024.1.1.0
  Attempting uninstall: robotpy-hal
    Found existing installation: robotpy-hal 2024.1.1.0
    Uninstalling robotpy-hal-2024.1.1.0:
      Successfully uninstalled robotpy-hal-2024.1.1.0
  Attempting uninstall: pyntcore
    Found existing installation: pyntcore 2024.1.1.0
    Uninstalling pyntcore-2024.1.1.0:
      Successfully uninstalled pyntcore-2024.1.1.0
  Attempting uninstall: wpilib
    Found existing installation: wpilib 2024.1.1.0
    Uninstalling wpilib-2024.1.1.0:
      Successfully uninstalled wpilib-2024.1.1.0
  Attempting uninstall: robotpy-halsim-gui
    Found existing installation: robotpy-halsim-gui 2024.1.1.0
    Uninstalling robotpy-halsim-gui-2024.1.1.0:
      Successfully uninstalled robotpy-halsim-gui-2024.1.1.0
  Attempting uninstall: robotpy
    Found existing installation: robotpy 2024.1.1
    Uninstalling robotpy-2024.1.1:
      Successfully uninstalled robotpy-2024.1.1
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
robotpy-apriltag 2024.1.1.0 requires robotpy-wpimath==2024.1.1.0, but you have robotpy-wpimath 2024.1.1.1 which is incompatible.
robotpy-apriltag 2024.1.1.0 requires robotpy-wpiutil==2024.1.1.0, but you have robotpy-wpiutil 2024.1.1.1 which is incompatible.
robotpy-halsim-ds-socket 2024.1.1.0 requires robotpy-hal==2024.1.1.0, but you have robotpy-hal 2024.1.1.1 which is incompatible.
robotpy-halsim-ds-socket 2024.1.1.0 requires robotpy-wpinet==2024.1.1.0, but you have robotpy-wpinet 2024.1.1.1 which is incompatible.
robotpy-halsim-ws 2024.1.1.0 requires robotpy-hal==2024.1.1.0, but you have robotpy-hal 2024.1.1.1 which is incompatible.
robotpy-halsim-ws 2024.1.1.0 requires robotpy-wpinet==2024.1.1.0, but you have robotpy-wpinet 2024.1.1.1 which is incompatible.
Successfully installed pyntcore-2024.1.1.1 robotpy-2024.1.1.1 robotpy-hal-2024.1.1.1 robotpy-halsim-gui-2024.1.1.1 robotpy-wpimath-2024.1.1.1 robotpy-wpinet-2024.1.1.1 robotpy-wpiutil-2024.1.1.1 wpilib-2024.1.1.1

Trying to run py -m robotpy deploy, but receiving a mix of MemoryErrors and OSErrors reporting no space left on device while installing python and robotpy libraries. I don’t know why it would be out of space since we just imaged the roboRIO yesterday.

Did you previously run Java on it? Or is it completely fresh. What components do you have enabled in your pyproject.toml?

I haven’t used the kickoff image yet, I’ve only tested on the beta… but presumably they aren’t that different.

You might try restarting the rio and trying again.

Edit: I’d also love to see the full output from the command if it’s still around.

The first time I ran deploy (only the bottom half is still visible in my console)
*** Error compiling '/usr/local/lib/python3.12/site-packages/pip/_vendor/chardet/langrussianmodel.py'...
Sorry: MemoryError: 
*** Error compiling '/usr/local/lib/python3.12/site-packages/pip/_vendor/idna/uts46data.py'...
Sorry: MemoryError:
*** Error compiling '/usr/local/lib/python3.12/site-packages/pip/_vendor/chardet/langrussianmodel.py'...
Sorry: MemoryError: 
*** Error compiling '/usr/local/lib/python3.12/site-packages/pip/_vendor/idna/uts46data.py'...
Sorry: MemoryError:
Downloading http://localhost:35767/opkg_cache/python312_3.12.1-r1_cortexa9-vfpv3.ipk.
Installing python312 (3.12.1) on root
Configuring python312.
11:19:17:707 INFO    : deploy              : Installing project requirements on RoboRIO:
11:19:17:708 INFO    : deploy              : - robotpy[apriltag,rev,sim]==2024.1.1.1
11:19:17:709 INFO    : deploy              : - robotpy-commands-v2==2024.0.0b4
11:19:17:946 INFO    : paramiko.transport.sftp: [chan 8] Opened sftp connection (server version 3)
11:19:17:969 INFO    : paramiko.transport.sftp: [chan 8] sftp session closed.
Looking in links: http://localhost:35767/pip_cache/
Collecting robotpy[apriltag,rev,sim]==2024.1.1.1
  Downloading http://localhost:35767/pip_cache/robotpy-2024.1.1.1-py3-none-any.whl (2.4 kB)
Collecting robotpy-commands-v2==2024.0.0b4
  Downloading http://localhost:35767/pip_cache/robotpy_commands_v2-2024.0.0b4-py3-none-any.whl (46 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 46.6/46.6 kB 11.7 MB/s eta 0:00:00
Collecting robotpy-wpiutil==2024.1.1.1 (from robotpy[apriltag,rev,sim]==2024.1.1.1)
  Downloading http://localhost:35767/pip_cache/robotpy_wpiutil-2024.1.1.1-cp312-cp312-linux_roborio.whl (3.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 3.6 MB/s eta 0:00:00
Collecting robotpy-wpinet==2024.1.1.1 (from robotpy[apriltag,rev,sim]==2024.1.1.1)
  Downloading http://localhost:35767/pip_cache/robotpy_wpinet-2024.1.1.1-cp312-cp312-linux_roborio.whl (655 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 656.0/656.0 kB 2.5 MB/s eta 0:00:00
ERROR: Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper
    status = run_func(*args)
             ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 249, in wrapper
    return func(self, options, args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 377, in run
    requirement_set = resolver.resolve(
                      ^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 92, in resolve
    result = self._result = resolver.resolve(
                            ^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 546, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 427, in resolve
    failure_causes = self._attempt_to_pin_criterion(name)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 239, in _attempt_to_pin_criterion
    criteria = self._get_updated_criteria(candidate)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 230, in _get_updated_criteria
    self._add_to_criteria(criteria, requirement, parent=candidate)
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 173, in _add_to_criteria
    if not criterion.candidates:
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/structs.py", line 156, in __bool__
    return bool(self._sequence)
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 155, in __bool__
    return any(self)
           ^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 143, in <genexpr>
    return (c for c in iterator if id(c) not in self._incompatible_ids)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 47, in _iter_built
    candidate = func()
                ^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 206, in _make_candidate_from_link
    self._link_candidate_cache[link] = LinkCandidate(
                                       ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 293, in __init__
    super().__init__(
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__
    self.dist = self._prepare()
                ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 225, in _prepare
    dist = self._prepare_distribution()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 304, in _prepare_distribution
    return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 538, in prepare_linked_requirement
    return self._prepare_linked_requirement(req, parallel_builds)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 643, in _prepare_linked_requirement
    hash = hash_file(local_file.path)[0].hexdigest()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/utils/misc.py", line 617, in hash_file
    for block in read_chunks(f, size=blocksize):
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/utils/misc.py", line 280, in read_chunks
    chunk = file.read(size)
            ^^^^^^^^^^^^^^^
MemoryError
ERROR: installing packages: Command '/home/admin/rpip --no-cache-dir --disable-pip-version-check install --no-index --root-user-action=ignore --find-links http://localhost:35767/pip_cache/ --upgrade --upgrade-strategy=eager robotpy[apriltag,rev,sim]==2024.1.1.1 robotpy-commands-v2==2024.0.0b4' returned non-zero error status 2

If 'no matching distribution found', run 'python -m robotpy sync' to download your
project requirements from the internet (or --no-install to ignore).
Running deploy after power cycling
C:\Users\me\Documents\GitHub\ri3d-2024-py>py -m robotpy deploy
11:36:11:293 INFO    : deploy              : Running tests: C:\Users\me\AppData\Local\Programs\Python\Python312\python.exe -m robotpy --main C:\Users\me\Documents\GitHub\ri3d-2024-py\robot.py test
11:36:12:804 WARNING : pyfrc.physics       : Cannot enable physics support, C:\Users\me\Documents\GitHub\ri3d-2024-py\physics.py not found
===================================================================== test session starts =====================================================================
platform win32 -- Python 3.12.0, pytest-7.4.4, pluggy-1.3.0
rootdir: C:\Users\me\Documents\GitHub\ri3d-2024-py\tests
plugins: anyio-4.0.0, reraise-2.1.2
collected 4 items

pyfrc_test.py ....                                                                                                                                       [100%]

====================================================================== 4 passed in 0.42s ====================================================================== 

********** Robot program startup complete **********
11:36:13:801 INFO    : robotpy.installer   : Settings loaded from C:\Users\me\Documents\GitHub\ri3d-2024-py\.wpilib\wpilib_preferences.json
11:36:13:802 INFO    : robotpy.installer   : Finding robot for team 9001
11:36:13:818 INFO    : robotpy.installer   : -> Robot is at 10.90.1.2
11:36:13:818 INFO    : robotpy.installer   : Connecting to robot via SSH at 10.90.1.2
11:36:14:001 INFO    : paramiko.transport  : Connected (version 2.0, client OpenSSH_8.3)
11:36:14:175 INFO    : paramiko.transport  : Auth banner: b'NI Linux Real-Time (run mode)\n\nLog in with your NI-Auth credentials.\n\n'
11:36:14:176 INFO    : paramiko.transport  : Authentication (password) successful!
11:36:15:394 WARNING : deploy              : Project requirements not installed on RoboRIO
11:36:15:395 INFO    : robotpy.installer   : RobotPy Installer 2024.0.2
11:36:15:395 INFO    : robotpy.installer   : -> caching files at C:\Users\me\wpilib\2024\robotpy
11:36:15:563 INFO    : paramiko.transport  : Connected (version 2.0, client OpenSSH_8.3)
11:36:15:752 INFO    : paramiko.transport  : Auth banner: b'NI Linux Real-Time (run mode)\n\nLog in with your NI-Auth credentials.\n\n'
11:36:15:753 INFO    : paramiko.transport  : Authentication (password) successful!
11:36:15:865 INFO    : robotpy.installer   : -> RoboRIO image version: 2024_v2.1
11:36:15:965 INFO    : robotpy.installer   : -> RoboRIO disk usage 267.2M/386.8M (69% full)
11:36:15:965 INFO    : deploy              : Installing project requirements on RoboRIO:
11:36:15:966 INFO    : deploy              : - robotpy[apriltag,rev]==2024.1.1.1
11:36:15:966 INFO    : deploy              : - robotpy-commands-v2==2024.0.0b4
11:36:16:161 INFO    : paramiko.transport.sftp: [chan 3] Opened sftp connection (server version 3)
11:36:16:180 INFO    : paramiko.transport.sftp: [chan 3] sftp session closed.
Looking in links: http://localhost:43437/pip_cache/
Collecting robotpy[apriltag,rev]==2024.1.1.1
  Downloading http://localhost:43437/pip_cache/robotpy-2024.1.1.1-py3-none-any.whl (2.4 kB)
Collecting robotpy-commands-v2==2024.0.0b4
  Downloading http://localhost:43437/pip_cache/robotpy_commands_v2-2024.0.0b4-py3-none-any.whl (46 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 46.6/46.6 kB 12.7 MB/s eta 0:00:00
Collecting robotpy-wpiutil==2024.1.1.1 (from robotpy[apriltag,rev]==2024.1.1.1)
  Downloading http://localhost:43437/pip_cache/robotpy_wpiutil-2024.1.1.1-cp312-cp312-linux_roborio.whl (3.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 5.0 MB/s eta 0:00:00
Collecting robotpy-wpinet==2024.1.1.1 (from robotpy[apriltag,rev]==2024.1.1.1)
  Downloading http://localhost:43437/pip_cache/robotpy_wpinet-2024.1.1.1-cp312-cp312-linux_roborio.whl (655 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 656.0/656.0 kB 4.7 MB/s eta 0:00:00
Collecting robotpy-wpimath==2024.1.1.1 (from robotpy[apriltag,rev]==2024.1.1.1)
  Downloading http://localhost:43437/pip_cache/robotpy_wpimath-2024.1.1.1-cp312-cp312-linux_roborio.whl (5.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.7/5.7 MB 5.1 MB/s eta 0:00:00
ERROR: Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper
    status = run_func(*args)
             ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 249, in wrapper
    return func(self, options, args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 377, in run
    requirement_set = resolver.resolve(
                      ^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 92, in resolve
    result = self._result = resolver.resolve(
                            ^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 546, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 427, in resolve
    failure_causes = self._attempt_to_pin_criterion(name)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 239, in _attempt_to_pin_criterion
    criteria = self._get_updated_criteria(candidate)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 230, in _get_updated_criteria
    self._add_to_criteria(criteria, requirement, parent=candidate)
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 173, in _add_to_criteria
    if not criterion.candidates:
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/structs.py", line 156, in __bool__
    return bool(self._sequence)
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 155, in __bool__
    return any(self)
           ^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 143, in <genexpr>
    return (c for c in iterator if id(c) not in self._incompatible_ids)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 47, in _iter_built
    candidate = func()
                ^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 206, in _make_candidate_from_link
    self._link_candidate_cache[link] = LinkCandidate(
                                       ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 293, in __init__
    super().__init__(
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__
    self.dist = self._prepare()
                ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 225, in _prepare
    dist = self._prepare_distribution()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 304, in _prepare_distribution
    return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 538, in prepare_linked_requirement
    return self._prepare_linked_requirement(req, parallel_builds)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 643, in _prepare_linked_requirement
    hash = hash_file(local_file.path)[0].hexdigest()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/utils/misc.py", line 617, in hash_file
    for block in read_chunks(f, size=blocksize):
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/utils/misc.py", line 280, in read_chunks
    chunk = file.read(size)
            ^^^^^^^^^^^^^^^
MemoryError
ERROR: installing packages: Command '/home/admin/rpip --no-cache-dir --disable-pip-version-check install --no-index --root-user-action=ignore --find-links http://localhost:43437/pip_cache/ --upgrade --upgrade-strategy=eager robotpy[apriltag,rev]==2024.1.1.1 robotpy-commands-v2==2024.0.0b4' returned non-zero error status 2

If 'no matching distribution found', run 'python -m robotpy sync' to download your
project requirements from the internet (or --no-install to ignore).
Running deploy again
C:\Users\me\Documents\GitHub\ri3d-2024-py>py -m robotpy deploy
11:58:44:162 INFO    : deploy              : Running tests: C:\Users\me\AppData\Local\Programs\Python\Python312\python.exe -m robotpy --main C:\Users\me\Documents\GitHub\ri3d-2024-py\robot.py test
11:58:45:618 WARNING : pyfrc.physics       : Cannot enable physics support, C:\Users\me\Documents\GitHub\ri3d-2024-py\physics.py not found
===================================================================== test session starts =====================================================================
platform win32 -- Python 3.12.0, pytest-7.4.4, pluggy-1.3.0
rootdir: C:\Users\me\Documents\GitHub\ri3d-2024-py\tests
plugins: anyio-4.0.0, reraise-2.1.2
collected 4 items

pyfrc_test.py ....                                                                                                                                       [100%]

====================================================================== 4 passed in 0.41s ======================================================================

********** Robot program startup complete **********
11:58:46:566 INFO    : robotpy.installer   : Settings loaded from C:\Users\me\Documents\GitHub\ri3d-2024-py\.wpilib\wpilib_preferences.json
11:58:46:566 INFO    : robotpy.installer   : Finding robot for team 9001
11:58:46:581 INFO    : robotpy.installer   : -> Robot is at 10.90.1.2
11:58:46:581 INFO    : robotpy.installer   : Connecting to robot via SSH at 10.90.1.2
11:58:46:784 INFO    : paramiko.transport  : Connected (version 2.0, client OpenSSH_8.3)
11:58:46:961 INFO    : paramiko.transport  : Auth banner: b'NI Linux Real-Time (run mode)\n\nLog in with your NI-Auth credentials.\n\n'
11:58:46:962 INFO    : paramiko.transport  : Authentication (password) successful!
11:58:48:218 WARNING : deploy              : Project requirements not installed on RoboRIO
11:58:48:219 INFO    : robotpy.installer   : RobotPy Installer 2024.0.2
11:58:48:219 INFO    : robotpy.installer   : -> caching files at C:\Users\me\wpilib\2024\robotpy
11:58:48:431 INFO    : paramiko.transport  : Connected (version 2.0, client OpenSSH_8.3)
11:58:48:651 INFO    : paramiko.transport  : Auth banner: b'NI Linux Real-Time (run mode)\n\nLog in with your NI-Auth credentials.\n\n'
11:58:48:652 INFO    : paramiko.transport  : Authentication (password) successful!
11:58:48:764 INFO    : robotpy.installer   : -> RoboRIO image version: 2024_v2.1
11:58:48:864 INFO    : robotpy.installer   : -> RoboRIO disk usage 267.2M/386.8M (69% full)
11:58:48:865 INFO    : deploy              : Installing project requirements on RoboRIO:
11:58:48:866 INFO    : deploy              : - robotpy[apriltag,rev]==2024.1.1.1
11:58:48:866 INFO    : deploy              : - robotpy-commands-v2==2024.0.0b4
11:58:49:071 INFO    : paramiko.transport.sftp: [chan 3] Opened sftp connection (server version 3)
11:58:49:095 INFO    : paramiko.transport.sftp: [chan 3] sftp session closed.
Looking in links: http://localhost:40411/pip_cache/
Collecting robotpy[apriltag,rev]==2024.1.1.1
  Downloading http://localhost:40411/pip_cache/robotpy-2024.1.1.1-py3-none-any.whl (2.4 kB)
Collecting robotpy-commands-v2==2024.0.0b4
  Downloading http://localhost:40411/pip_cache/robotpy_commands_v2-2024.0.0b4-py3-none-any.whl (46 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 46.6/46.6 kB 9.2 MB/s eta 0:00:00
Collecting robotpy-wpiutil==2024.1.1.1 (from robotpy[apriltag,rev]==2024.1.1.1)
  Downloading http://localhost:40411/pip_cache/robotpy_wpiutil-2024.1.1.1-cp312-cp312-linux_roborio.whl (3.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 5.3 MB/s eta 0:00:00
Collecting robotpy-wpinet==2024.1.1.1 (from robotpy[apriltag,rev]==2024.1.1.1)
  Downloading http://localhost:40411/pip_cache/robotpy_wpinet-2024.1.1.1-cp312-cp312-linux_roborio.whl (655 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 656.0/656.0 kB 4.2 MB/s eta 0:00:00
Collecting robotpy-wpimath==2024.1.1.1 (from robotpy[apriltag,rev]==2024.1.1.1)
  Downloading http://localhost:40411/pip_cache/robotpy_wpimath-2024.1.1.1-cp312-cp312-linux_roborio.whl (5.7 MB)
ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device

     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━       4.9/5.7 MB 5.0 MB/s eta 0:00:01
ERROR: installing packages: Command '/home/admin/rpip --no-cache-dir --disable-pip-version-check install --no-index --root-user-action=ignore --find-links http://localhost:40411/pip_cache/ --upgrade --upgrade-strategy=eager robotpy[apriltag,rev]==2024.1.1.1 robotpy-commands-v2==2024.0.0b4' returned non-zero error status 1

If 'no matching distribution found', run 'python -m robotpy sync' to download your
project requirements from the internet (or --no-install to ignore).

It reports earlier that RoboRIO disk usage 267.2M/386.8M (69% full), which would also agree with the web dashboard

We did run java on it once earlier today, and I currently have the apriltag, rev, and commands2 beta active. I tried deactivating the extras but it consistently fails when trying to install wpimath with and without them enabled.

That’s super helpful, thanks for collecting that information!

… but also, that’s really annoying. 100M of free space should definitely be enough… my guess is that the temporary ramdisk that /tmp is on is getting filled because the device is out of ram?

The NI webserver is often the culprit for eating large amounts of memory. Can you ssh to [email protected], run /usr/local/natinst/etc/init.d/systemWebServer stop, and try to deploy again?

I killed the ni server, then ran deploy like 4 times, and it eventually worked? Before the last run, I disabled the extras since it seemed like one of the previous times it failed when installing robotpy-cscore. Now when I try to deploy (even when adding/removing extras), it always says deploy successful, so I’m not sure if it ever actually downloaded the extras I wanted. Since it seems like I can run code now, I’ll test and see if this is the case.

Logs of running deploy like 4 times
C:\Users\me\Documents\GitHub\ri3d-2024-py>py -m robotpy deploy
12:27:19:545 INFO    : deploy              : Running tests: C:\Users\me\AppData\Local\Programs\Python\Python312\python.exe -m robotpy --main C:\Users\me\Documents\GitHub\ri3d-2024-py\robot.py test
12:27:20:903 WARNING : pyfrc.physics       : Cannot enable physics support, C:\Users\me\Documents\GitHub\ri3d-2024-py\physics.py not found
========================================================== test session starts ===========================================================
platform win32 -- Python 3.12.0, pytest-7.4.4, pluggy-1.3.0
rootdir: C:\Users\me\Documents\GitHub\ri3d-2024-py\tests
plugins: anyio-4.0.0, reraise-2.1.2
collected 4 items

pyfrc_test.py ....                                                                                                                  [100%]

=========================================================== 4 passed in 0.97s ============================================================ 

********** Robot program startup complete **********
12:27:22:496 INFO    : robotpy.installer   : Settings loaded from C:\Users\me\Documents\GitHub\ri3d-2024-py\.wpilib\wpilib_preferences.json
12:27:22:497 INFO    : robotpy.installer   : Finding robot for team 9001
12:27:22:513 INFO    : robotpy.installer   : -> Robot is at 10.90.1.2
12:27:22:513 INFO    : robotpy.installer   : Connecting to robot via SSH at 10.90.1.2
12:27:22:664 INFO    : paramiko.transport  : Connected (version 2.0, client OpenSSH_8.3)
12:27:22:826 INFO    : paramiko.transport  : Auth banner: b'NI Linux Real-Time (run mode)\n\nLog in with your NI-Auth credentials.\n\n'
12:27:22:828 INFO    : paramiko.transport  : Authentication (password) successful!
12:27:24:065 WARNING : deploy              : Project requirements not installed on RoboRIO
12:27:24:066 INFO    : robotpy.installer   : RobotPy Installer 2024.0.2
12:27:24:066 INFO    : robotpy.installer   : -> caching files at C:\Users\me\wpilib\2024\robotpy
12:27:24:231 INFO    : paramiko.transport  : Connected (version 2.0, client OpenSSH_8.3)
12:27:24:427 INFO    : paramiko.transport  : Auth banner: b'NI Linux Real-Time (run mode)\n\nLog in with your NI-Auth credentials.\n\n'
12:27:24:428 INFO    : paramiko.transport  : Authentication (password) successful!
12:27:24:606 INFO    : robotpy.installer   : -> RoboRIO image version: 2024_v2.1
12:27:24:717 INFO    : robotpy.installer   : -> RoboRIO disk usage 267.3M/386.8M (69% full)
12:27:24:718 INFO    : deploy              : Installing project requirements on RoboRIO:
12:27:24:718 INFO    : deploy              : - robotpy[apriltag,cscore,rev]==2024.1.1.1
12:27:24:719 INFO    : deploy              : - robotpy-commands-v2==2024.0.0b4
12:27:24:937 INFO    : paramiko.transport.sftp: [chan 3] Opened sftp connection (server version 3)
12:27:24:958 INFO    : paramiko.transport.sftp: [chan 3] sftp session closed.
Looking in links: http://localhost:36011/pip_cache/
Collecting robotpy[apriltag,cscore,rev]==2024.1.1.1
  Downloading http://localhost:36011/pip_cache/robotpy-2024.1.1.1-py3-none-any.whl (2.4 kB)
Collecting robotpy-commands-v2==2024.0.0b4
  Downloading http://localhost:36011/pip_cache/robotpy_commands_v2-2024.0.0b4-py3-none-any.whl (46 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 46.6/46.6 kB 11.7 MB/s eta 0:00:00
Collecting robotpy-wpiutil==2024.1.1.1 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:36011/pip_cache/robotpy_wpiutil-2024.1.1.1-cp312-cp312-linux_roborio.whl (3.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 5.6 MB/s eta 0:00:00
Collecting robotpy-wpinet==2024.1.1.1 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:36011/pip_cache/robotpy_wpinet-2024.1.1.1-cp312-cp312-linux_roborio.whl (655 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 656.0/656.0 kB 7.4 MB/s eta 0:00:00
Collecting robotpy-wpimath==2024.1.1.1 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:36011/pip_cache/robotpy_wpimath-2024.1.1.1-cp312-cp312-linux_roborio.whl (5.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.7/5.7 MB 5.6 MB/s eta 0:00:00
Collecting pyntcore==2024.1.1.1 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:36011/pip_cache/pyntcore-2024.1.1.1-cp312-cp312-linux_roborio.whl (1.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 6.0 MB/s eta 0:00:00
Collecting robotpy-hal==2024.1.1.1 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:36011/pip_cache/robotpy_hal-2024.1.1.1-cp312-cp312-linux_roborio.whl (1.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 4.7 MB/s eta 0:00:00
Collecting wpilib==2024.1.1.1 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:36011/pip_cache/wpilib-2024.1.1.1-cp312-cp312-linux_roborio.whl (4.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.8/4.8 MB 5.5 MB/s eta 0:00:00
Collecting robotpy-wpilib-utilities<2025,>=2024.0.0 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:36011/pip_cache/robotpy_wpilib_utilities-2024.0.0-py3-none-any.whl (47 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.7/47.7 kB 12.7 MB/s eta 0:00:00
Collecting robotpy-apriltag==2024.1.1.1 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:36011/pip_cache/robotpy_apriltag-2024.1.1.1-cp312-cp312-linux_roborio.whl (1.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 5.1 MB/s eta 0:00:00
Collecting numpy==1.25.2 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:36011/pip_cache/numpy-1.25.2-cp312-cp312-linux_roborio.whl (14.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.7/14.7 MB 5.0 MB/s eta 0:00:00
Collecting robotpy-opencv (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:36011/pip_cache/robotpy_opencv-4.8.0%2Br1-py3-none-linux_roborio.whl (1.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 5.1 MB/s eta 0:00:00
Collecting robotpy-cscore==2024.1.1.1 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:36011/pip_cache/robotpy_cscore-2024.1.1.1-cp312-cp312-linux_roborio.whl (8.2 MB)
ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device

     ━━━━━━━━━━━                              2.4/8.2 MB 5.3 MB/s eta 0:00:02
ERROR: installing packages: Command '/home/admin/rpip --no-cache-dir --disable-pip-version-check install --no-index --root-user-action=ignore --find-links http://localhost:36011/pip_cache/ --upgrade --upgrade-strategy=eager robotpy[apriltag,cscore,rev]==2024.1.1.1 robotpy-commands-v2==2024.0.0b4' returned non-zero error status 1

If 'no matching distribution found', run 'python -m robotpy sync' to download your
project requirements from the internet (or --no-install to ignore).

C:\Users\me\Documents\GitHub\ri3d-2024-py>py -m robotpy deploy
12:27:49:510 INFO    : deploy              : Running tests: C:\Users\me\AppData\Local\Programs\Python\Python312\python.exe -m robotpy --main C:\Users\me\Documents\GitHub\ri3d-2024-py\robot.py test
12:27:50:840 WARNING : pyfrc.physics       : Cannot enable physics support, C:\Users\me\Documents\GitHub\ri3d-2024-py\physics.py not found
========================================================== test session starts ===========================================================
platform win32 -- Python 3.12.0, pytest-7.4.4, pluggy-1.3.0
rootdir: C:\Users\me\Documents\GitHub\ri3d-2024-py\tests
plugins: anyio-4.0.0, reraise-2.1.2
collected 4 items

pyfrc_test.py ....                                                                                                                  [100%]

=========================================================== 4 passed in 0.77s ============================================================ 

********** Robot program startup complete **********
12:27:52:203 INFO    : robotpy.installer   : Settings loaded from C:\Users\me\Documents\GitHub\ri3d-2024-py\.wpilib\wpilib_preferences.json
12:27:52:204 INFO    : robotpy.installer   : Finding robot for team 9001
12:27:52:218 INFO    : robotpy.installer   : -> Robot is at 10.90.1.2
12:27:52:218 INFO    : robotpy.installer   : Connecting to robot via SSH at 10.90.1.2
12:27:52:371 INFO    : paramiko.transport  : Connected (version 2.0, client OpenSSH_8.3)
12:27:52:535 INFO    : paramiko.transport  : Auth banner: b'NI Linux Real-Time (run mode)\n\nLog in with your NI-Auth credentials.\n\n'
12:27:52:536 INFO    : paramiko.transport  : Authentication (password) successful!
12:27:53:787 WARNING : deploy              : Project requirements not installed on RoboRIO
12:27:53:788 INFO    : robotpy.installer   : RobotPy Installer 2024.0.2
12:27:53:789 INFO    : robotpy.installer   : -> caching files at C:\Users\me\wpilib\2024\robotpy
12:27:54:029 INFO    : paramiko.transport  : Connected (version 2.0, client OpenSSH_8.3)
12:27:54:254 INFO    : paramiko.transport  : Auth banner: b'NI Linux Real-Time (run mode)\n\nLog in with your NI-Auth credentials.\n\n'
12:27:54:255 INFO    : paramiko.transport  : Authentication (password) successful!
12:27:54:429 INFO    : robotpy.installer   : -> RoboRIO image version: 2024_v2.1
12:27:54:536 INFO    : robotpy.installer   : -> RoboRIO disk usage 267.3M/386.8M (69% full)
12:27:54:537 INFO    : deploy              : Installing project requirements on RoboRIO:
12:27:54:537 INFO    : deploy              : - robotpy[apriltag,cscore,rev]==2024.1.1.1
12:27:54:538 INFO    : deploy              : - robotpy-commands-v2==2024.0.0b4
12:27:54:776 INFO    : paramiko.transport.sftp: [chan 3] Opened sftp connection (server version 3)
12:27:54:798 INFO    : paramiko.transport.sftp: [chan 3] sftp session closed.
Looking in links: http://localhost:41189/pip_cache/
Collecting robotpy[apriltag,cscore,rev]==2024.1.1.1
  Downloading http://localhost:41189/pip_cache/robotpy-2024.1.1.1-py3-none-any.whl (2.4 kB)
Collecting robotpy-commands-v2==2024.0.0b4
  Downloading http://localhost:41189/pip_cache/robotpy_commands_v2-2024.0.0b4-py3-none-any.whl (46 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 46.6/46.6 kB 12.8 MB/s eta 0:00:00
Collecting robotpy-wpiutil==2024.1.1.1 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:41189/pip_cache/robotpy_wpiutil-2024.1.1.1-cp312-cp312-linux_roborio.whl (3.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 6.2 MB/s eta 0:00:00
Collecting robotpy-wpinet==2024.1.1.1 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:41189/pip_cache/robotpy_wpinet-2024.1.1.1-cp312-cp312-linux_roborio.whl (655 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 656.0/656.0 kB 7.9 MB/s eta 0:00:00
Collecting robotpy-wpimath==2024.1.1.1 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:41189/pip_cache/robotpy_wpimath-2024.1.1.1-cp312-cp312-linux_roborio.whl (5.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.7/5.7 MB 5.3 MB/s eta 0:00:00
Collecting pyntcore==2024.1.1.1 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:41189/pip_cache/pyntcore-2024.1.1.1-cp312-cp312-linux_roborio.whl (1.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 5.8 MB/s eta 0:00:00
Collecting robotpy-hal==2024.1.1.1 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:41189/pip_cache/robotpy_hal-2024.1.1.1-cp312-cp312-linux_roborio.whl (1.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 5.2 MB/s eta 0:00:00
Collecting wpilib==2024.1.1.1 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:41189/pip_cache/wpilib-2024.1.1.1-cp312-cp312-linux_roborio.whl (4.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.8/4.8 MB 5.6 MB/s eta 0:00:00
Collecting robotpy-wpilib-utilities<2025,>=2024.0.0 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:41189/pip_cache/robotpy_wpilib_utilities-2024.0.0-py3-none-any.whl (47 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.7/47.7 kB 14.0 MB/s eta 0:00:00
Collecting robotpy-apriltag==2024.1.1.1 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:41189/pip_cache/robotpy_apriltag-2024.1.1.1-cp312-cp312-linux_roborio.whl (1.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 6.1 MB/s eta 0:00:00
Collecting numpy==1.25.2 (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:41189/pip_cache/numpy-1.25.2-cp312-cp312-linux_roborio.whl (14.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.7/14.7 MB 5.4 MB/s eta 0:00:00
Collecting robotpy-opencv (from robotpy[apriltag,cscore,rev]==2024.1.1.1)
  Downloading http://localhost:41189/pip_cache/robotpy_opencv-4.8.0%2Br1-py3-none-linux_roborio.whl (1.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 5.6 MB/s eta 0:00:00
ERROR: Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper
    status = run_func(*args)
             ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 249, in wrapper
    return func(self, options, args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 377, in run
    requirement_set = resolver.resolve(
                      ^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 92, in resolve
    result = self._result = resolver.resolve(
                            ^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 546, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 427, in resolve
    failure_causes = self._attempt_to_pin_criterion(name)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 239, in _attempt_to_pin_criterion
    criteria = self._get_updated_criteria(candidate)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 230, in _get_updated_criteria
    self._add_to_criteria(criteria, requirement, parent=candidate)
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 173, in _add_to_criteria
    if not criterion.candidates:
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_vendor/resolvelib/structs.py", line 156, in __bool__
    return bool(self._sequence)
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 155, in __bool__
    return any(self)
           ^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 143, in <genexpr>
    return (c for c in iterator if id(c) not in self._incompatible_ids)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 47, in _iter_built
    candidate = func()
                ^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 206, in _make_candidate_from_link    
    self._link_candidate_cache[link] = LinkCandidate(
                                       ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 293, in __init__
    super().__init__(
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__
    self.dist = self._prepare()
                ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 225, in _prepare
    dist = self._prepare_distribution()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 304, in _prepare_distribution     
    return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 538, in prepare_linked_requirement
    return self._prepare_linked_requirement(req, parallel_builds)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 643, in _prepare_linked_requirement
    hash = hash_file(local_file.path)[0].hexdigest()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/utils/misc.py", line 617, in hash_file
    for block in read_chunks(f, size=blocksize):
  File "/usr/local/lib/python3.12/site-packages/pip/_internal/utils/misc.py", line 280, in read_chunks
    chunk = file.read(size)
            ^^^^^^^^^^^^^^^
MemoryError
ERROR: installing packages: Command '/home/admin/rpip --no-cache-dir --disable-pip-version-check install --no-index --root-user-action=ignore --find-links http://localhost:41189/pip_cache/ --upgrade --upgrade-strategy=eager robotpy[apriltag,cscore,rev]==2024.1.1.1 robotpy-commands-v2==2024.0.0b4' returned non-zero error status 2

If 'no matching distribution found', run 'python -m robotpy sync' to download your
project requirements from the internet (or --no-install to ignore).

C:\Users\me\Documents\GitHub\ri3d-2024-py>py -m robotpy deploy 
12:28:42:116 INFO    : deploy              : Running tests: C:\Users\me\AppData\Local\Programs\Python\Python312\python.exe -m robotpy --main C:\Users\me\Documents\GitHub\ri3d-2024-py\robot.py test
12:28:43:449 WARNING : pyfrc.physics       : Cannot enable physics support, C:\Users\me\Documents\GitHub\ri3d-2024-py\physics.py not found
========================================================== test session starts ===========================================================
platform win32 -- Python 3.12.0, pytest-7.4.4, pluggy-1.3.0
rootdir: C:\Users\me\Documents\GitHub\ri3d-2024-py\tests
plugins: anyio-4.0.0, reraise-2.1.2
collected 4 items

pyfrc_test.py ....                                                                                                                  [100%]

=========================================================== 4 passed in 0.91s ============================================================ 

********** Robot program startup complete **********
12:28:44:934 INFO    : robotpy.installer   : Settings loaded from C:\Users\me\Documents\GitHub\ri3d-2024-py\.wpilib\wpilib_preferences.json
12:28:44:935 INFO    : robotpy.installer   : Finding robot for team 9001
12:28:44:948 INFO    : robotpy.installer   : -> Robot is at 10.90.1.2
12:28:44:949 INFO    : robotpy.installer   : Connecting to robot via SSH at 10.90.1.2
12:28:45:099 INFO    : paramiko.transport  : Connected (version 2.0, client OpenSSH_8.3)
12:28:45:261 INFO    : paramiko.transport  : Auth banner: b'NI Linux Real-Time (run mode)\n\nLog in with your NI-Auth credentials.\n\n'
12:28:45:262 INFO    : paramiko.transport  : Authentication (password) successful!
12:28:46:564 WARNING : deploy              : Project requirements not installed on RoboRIO
12:28:46:565 INFO    : robotpy.installer   : RobotPy Installer 2024.0.2
12:28:46:565 INFO    : robotpy.installer   : -> caching files at C:\Users\me\wpilib\2024\robotpy
12:28:46:722 INFO    : paramiko.transport  : Connected (version 2.0, client OpenSSH_8.3)
12:28:46:950 INFO    : paramiko.transport  : Auth banner: b'NI Linux Real-Time (run mode)\n\nLog in with your NI-Auth credentials.\n\n'
12:28:46:951 INFO    : paramiko.transport  : Authentication (password) successful!
12:28:47:062 INFO    : robotpy.installer   : -> RoboRIO image version: 2024_v2.1
12:28:47:162 INFO    : robotpy.installer   : -> RoboRIO disk usage 267.3M/386.8M (69% full)
12:28:47:162 INFO    : deploy              : Installing project requirements on RoboRIO:
12:28:47:163 INFO    : deploy              : - robotpy==2024.1.1.1
12:28:47:164 INFO    : deploy              : - robotpy-commands-v2==2024.0.0b4
12:28:47:397 INFO    : paramiko.transport.sftp: [chan 3] Opened sftp connection (server version 3)
12:28:47:451 INFO    : paramiko.transport.sftp: [chan 3] sftp session closed.
Looking in links: http://localhost:44117/pip_cache/
Collecting robotpy==2024.1.1.1
  Downloading http://localhost:44117/pip_cache/robotpy-2024.1.1.1-py3-none-any.whl (2.4 kB)
Collecting robotpy-commands-v2==2024.0.0b4
  Downloading http://localhost:44117/pip_cache/robotpy_commands_v2-2024.0.0b4-py3-none-any.whl (46 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 46.6/46.6 kB 13.5 MB/s eta 0:00:00
Collecting robotpy-wpiutil==2024.1.1.1 (from robotpy==2024.1.1.1)
  Downloading http://localhost:44117/pip_cache/robotpy_wpiutil-2024.1.1.1-cp312-cp312-linux_roborio.whl (3.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 5.5 MB/s eta 0:00:00
Collecting robotpy-wpinet==2024.1.1.1 (from robotpy==2024.1.1.1)
  Downloading http://localhost:44117/pip_cache/robotpy_wpinet-2024.1.1.1-cp312-cp312-linux_roborio.whl (655 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 656.0/656.0 kB 5.8 MB/s eta 0:00:00
Collecting robotpy-wpimath==2024.1.1.1 (from robotpy==2024.1.1.1)
  Downloading http://localhost:44117/pip_cache/robotpy_wpimath-2024.1.1.1-cp312-cp312-linux_roborio.whl (5.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.7/5.7 MB 5.4 MB/s eta 0:00:00
Collecting pyntcore==2024.1.1.1 (from robotpy==2024.1.1.1)
  Downloading http://localhost:44117/pip_cache/pyntcore-2024.1.1.1-cp312-cp312-linux_roborio.whl (1.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 5.1 MB/s eta 0:00:00
Collecting robotpy-hal==2024.1.1.1 (from robotpy==2024.1.1.1)
  Downloading http://localhost:44117/pip_cache/robotpy_hal-2024.1.1.1-cp312-cp312-linux_roborio.whl (1.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 6.7 MB/s eta 0:00:00
Collecting wpilib==2024.1.1.1 (from robotpy==2024.1.1.1)
  Downloading http://localhost:44117/pip_cache/wpilib-2024.1.1.1-cp312-cp312-linux_roborio.whl (4.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.8/4.8 MB 4.6 MB/s eta 0:00:00
Collecting robotpy-wpilib-utilities<2025,>=2024.0.0 (from robotpy==2024.1.1.1)
  Downloading http://localhost:44117/pip_cache/robotpy_wpilib_utilities-2024.0.0-py3-none-any.whl (47 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.7/47.7 kB 13.2 MB/s eta 0:00:00
Collecting typing-extensions<5,>=4.1.0 (from robotpy-commands-v2==2024.0.0b4)
  Downloading http://localhost:44117/pip_cache/typing_extensions-4.9.0-py3-none-any.whl (32 kB)
Collecting robotpy-cli~=2024.0b (from wpilib==2024.1.1.1->robotpy==2024.1.1.1)
  Downloading http://localhost:44117/pip_cache/robotpy_cli-2024.0.0-py3-none-any.whl (8.9 kB)
Installing collected packages: typing-extensions, robotpy-wpiutil, robotpy-cli, robotpy-wpinet, robotpy-wpimath, robotpy-hal, pyntcore, wpilib, robotpy-wpilib-utilities, robotpy-commands-v2, robotpy
Successfully installed pyntcore-2024.1.1.1 robotpy-2024.1.1.1 robotpy-cli-2024.0.0 robotpy-commands-v2-2024.0.0b4 robotpy-hal-2024.1.1.1 robotpy-wpilib-utilities-2024.0.0 robotpy-wpimath-2024.1.1.1 robotpy-wpinet-2024.1.1.1 robotpy-wpiutil-2024.1.1.1 typing-extensions-4.9.0 wpilib-2024.1.1.1
12:29:21:894 INFO    : robotpy.installer   : -> RoboRIO disk usage 302.7M/386.8M (78% full)
12:29:22:082 INFO    : root                : Not including git hash in deploy.json: Not a git repo.
12:29:22:186 INFO    : paramiko.transport.sftp: [chan 4] Opened sftp connection (server version 3)
make /home/lvuser/py_new
deploy.json -> /home/lvuser/py_new/deploy.json
pyproject.toml -> /home/lvuser/py_new/pyproject.toml
robot.py -> /home/lvuser/py_new/robot.py
make /home/lvuser/py_new/tests
tests\pyfrc_test.py -> /home/lvuser/py_new/tests/pyfrc_test.py
12:29:22:330 INFO    : paramiko.transport.sftp: [chan 4] sftp session closed.
Mon Jan  8 11:40:47 EST 2024 - Killing robot code in frcKillRobot.sh

SUCCESS: Deploy was successful!

Thanks for suffering through that. This is all really useful.

I have some ideas for addressing this, but it will have to wait until tonight.

No problem; this is the point of RI3D, right?

The good news is that I am able to run working robot code (it’s just print statements for now), but it seems like the extras weren’t installed and changing the pyproject.toml and redeploying doesn’t seem to try to install anything new.

I also don’t know how to exit the net console window once it’s opened; my only solution is to kill the terminal and open a new one.

py -m robotpy installer list

Will show which packages are installed. It’s possible some of the extras were installed. It’s also possible that the install is totally hosed because of the failures.

C:\Users\me\Documents\GitHub\ri3d-2024-py>py -m robotpy installer list
13:27:57:095 INFO    : robotpy.installer   : RobotPy Installer 2024.0.2
13:27:57:096 INFO    : robotpy.installer   : -> caching files at C:\Users\me\wpilib\2024\robotpy
13:27:57:097 INFO    : robotpy.installer   : Settings loaded from C:\Users\me\Documents\GitHub\ri3d-2024-py\.wpilib\wpilib_preferences.json
13:27:57:097 INFO    : robotpy.installer   : Finding robot for team 9001
13:27:57:111 INFO    : robotpy.installer   : -> Robot is at 10.90.1.2
13:27:57:111 INFO    : robotpy.installer   : Connecting to robot via SSH at 10.90.1.2
13:27:57:266 INFO    : paramiko.transport  : Connected (version 2.0, client OpenSSH_8.3)
13:27:57:468 INFO    : paramiko.transport  : Auth banner: b'NI Linux Real-Time (run mode)\n\nLog in with your NI-Auth credentials.\n\n'
13:27:57:468 INFO    : paramiko.transport  : Authentication (password) successful!
13:27:57:592 INFO    : robotpy.installer   : -> RoboRIO image version: 2024_v2.1
13:27:57:788 INFO    : paramiko.transport.sftp: [chan 2] Opened sftp connection (server version 3)
13:27:57:806 INFO    : paramiko.transport.sftp: [chan 2] sftp session closed.
Package                  Version
------------------------ ----------
pip                      23.2.1
pyntcore                 2024.1.1.1
robotpy                  2024.1.1.1
robotpy-cli              2024.0.0
robotpy-commands-v2      2024.0.0b4
robotpy-hal              2024.1.1.1
robotpy-wpilib-utilities 2024.0.0
robotpy-wpimath          2024.1.1.1
robotpy-wpinet           2024.1.1.1
robotpy-wpiutil          2024.1.1.1
typing_extensions        4.9.0
wpilib                   2024.1.1.1

It installed the commands2 beta because it was in the pyproject.toml the first time deploy succeeded, but hasn’t installed any of the other extras I have enabled since then.

What deploying looks like now:

C:\Users\me\Documents\GitHub\ri3d-2024-py>py -m robotpy deploy
13:29:53:230 INFO    : deploy              : Running tests: C:\Users\me\AppData\Local\Programs\Python\Python312\python.exe -m robotpy --main C:\Users\me\Documents\GitHub\ri3d-2024-py\robot.py test
13:29:54:533 WARNING : pyfrc.physics       : Cannot enable physics support, C:\Users\me\Documents\GitHub\ri3d-2024-py\physics.py not found
===================================================================== test session starts =====================================================================
platform win32 -- Python 3.12.0, pytest-7.4.4, pluggy-1.3.0
rootdir: C:\Users\me\Documents\GitHub\ri3d-2024-py\tests
plugins: anyio-4.0.0, reraise-2.1.2
collected 4 items

pyfrc_test.py ....                                                                                                                                       [100%]

====================================================================== 4 passed in 0.47s ====================================================================== 

********** Robot program startup complete **********
13:29:55:619 INFO    : robotpy.installer   : Settings loaded from C:\Users\me\Documents\GitHub\ri3d-2024-py\.wpilib\wpilib_preferences.json
13:29:55:620 INFO    : robotpy.installer   : Finding robot for team 9001
13:29:55:633 INFO    : robotpy.installer   : -> Robot is at 10.90.1.2
13:29:55:634 INFO    : robotpy.installer   : Connecting to robot via SSH at 10.90.1.2
13:29:55:782 INFO    : paramiko.transport  : Connected (version 2.0, client OpenSSH_8.3)
13:29:55:902 INFO    : paramiko.transport  : Auth banner: b'NI Linux Real-Time (run mode)\n\nLog in with your NI-Auth credentials.\n\n'
13:29:55:903 INFO    : paramiko.transport  : Authentication (password) successful!
13:29:57:265 INFO    : deploy              : All project requirements already installed
13:29:57:473 INFO    : root                : Not including git hash in deploy.json: Not a git repo.
13:29:57:531 INFO    : paramiko.transport.sftp: [chan 4] Opened sftp connection (server version 3)
make /home/lvuser/py_new
deploy.json -> /home/lvuser/py_new/deploy.json
pyproject.toml -> /home/lvuser/py_new/pyproject.toml
robot.py -> /home/lvuser/py_new/robot.py
make /home/lvuser/py_new/tests
tests\pyfrc_test.py -> /home/lvuser/py_new/tests/pyfrc_test.py
13:29:57:646 INFO    : paramiko.transport.sftp: [chan 4] sftp session closed.
Mon Jan  8 13:29:58 EST 2024 - Killing robot code in frcKillRobot.sh
/usr/local/frc/bin/frcKillRobot.sh: line 42: kill: (-16444) - No such process
killall: lvrt: no process killed

SUCCESS: Deploy was successful!

Current pyproject.toml:

#
# Use this configuration file to control what RobotPy packages are installed
# on your RoboRIO
#

[tool.robotpy]

# Version of robotpy this project depends on
robotpy_version = "2024.1.1.1"

# Which extra RobotPy components should be installed
# -> equivalent to `pip install robotpy[extra1, ...]
robotpy_extras = [
    # "all"
    "apriltag",
    # "commands2"
    "cscore",
    # "navx"
    # "pathplannerlib"
    # "phoenix5"
    # "phoenix6"
    # "playingwithfusion"
    "rev",
    # "romi"
    # "sim"
    # "xrp"
]

# Other pip packages to install
requires = [
    "robotpy-commands-v2==2024.0.0b4"
]

It says All project requirements already installed even though that clearly isn’t the case.

Ah yes, a bug. Will try to address that too tonight, tracking at [BUG]: deploy doesn't take extras into account when determining whether the remote is up to date Β· Issue #88 Β· robotpy/robotpy-installer Β· GitHub

We had to reimage our roborio for unrelated reasons, which allowed me to do a bit more experimentation when reinstalling python:

Full logs

A couple things I noticed:

Whenever the NI webserver was active, installation would fail with a MemoryError.

After stopping the webserver, several times I tried deploying with apriltag, cscore, rev, and commands2 beta, however this failed with an OSError consistently after downloading 2-4 MB of the robotpy-openblas package. I tried other configurations of extras, I think cscore+rev+commands2 and apriltag+rev+commands2, and both failed.

In all of these configurations, it seems like the program terminates after downloading 45-47 MB of packages.

Finally, I tried installing just rev+commands2, which succeeded. The sum of packages installed for this configuration is only ~18.1 MB.

My guess is that the installer is trying to reinstall all the packages every time and running out of storage at ~320 MB/386MB for some reason.