Skip to content

Python Package Manager in 26.3 BUG when directory does not exist. #490

Description

I built 26.3 under Linux Mint and ran into an error with the Python Package Manager. I am assuming this issue belongs here since it is so closely related to the Addon Manager.

Here is the output from the python console:
14:47:47 Traceback (most recent call last):
14:47:47 File "/home/john/FreeCAD/build/historical-python-store-test/Mod/AddonManager/addonmanager_python_deps_gui.py", line 79, in _install_button_clicked
14:47:47 self.model.install_packages(packages.split())
14:47:47 File "/home/john/FreeCAD/build/historical-python-store-test/Mod/AddonManager/addonmanager_python_deps.py", line 318, in install_packages
14:47:47 self._install_or_update_packages([*installed, *packages], PipCommand.Install)
14:47:47 File "/home/john/FreeCAD/build/historical-python-store-test/Mod/AddonManager/addonmanager_python_deps.py", line 326, in _install_or_update_packages
14:47:47 os.rename(self.vendor_path, self.vendor_path + ".old")
14:47:47 FileNotFoundError: [Errno 2] No such file or directory: '/home/john/.local/share/FreeCAD/v26-3/AdditionalPythonPackages/py311' -> '/home/john/.local/share/FreeCAD/v26-3/AdditionalPythonPackages/py311.old'

The solution is simply to ensure the path exists before it is renamed. Then the Python Package Manager can successfully rename it to *.old and packages can be installed.

Conceptually if it is doing this:
os.rename(self.vendor_path, self.vendor_path + ".old")

This would be better:
if os.path.exists(self.vendor_path):
os.rename(self.vendor_path, self.vendor_path + ".old")

To workaround, simply make the directory from the command line before running the Python Package Manager, and it will work. Presumably this is done by the installer, but since I built from source, I don't know.

My FreeCAD version info:
OS: Linux Mint 22.3 (X-Cinnamon/cinnamon/xcb)
Architecture: x86_64
Version: 26.3.0dev.48363 +1 (Git)
Build date: 2026/09/02 06:41:46
Build type: Release
Branch: historical-python-store-test
Hash: 9ca8f05179a7e992000bcced36f457dba2b086de
Python 3.11.14, Qt 6.8.3, Coin 4.0.10 (bundled), Pivy 0.6.11 (bundled), Vtk 9.3.1, boost 1_86, Eigen3 3.4.0, PySide 6.8.3
shiboken 6.8.3, xerces-c 3.3.0, Clipper2 , OCC 7.8.1
Locale: English/United States (en_US)
Stylesheet/Theme/QtStyle: FreeCAD.qss/FreeCAD Dark/
QPA/File dialog/Color dialog: xcb/via Qt/via Qt
Navigation Style/Orbit Style/Rotation Mode: OpenSCAD/Trackball/Drag at cursor
Logical DPI/Physical DPI/Pixel Ratio: 96/129.444/1
OpenGL version/vendor/renderer: 4.6 (Compatibility Profile) Mesa 25.2.8-0ubuntu0.24.04.2/AMD/AMD Radeon 890M Graphics (radeonsi, gfx1150, LLVM 20.1.2, DRM 3.64, 6.17.0-1032-oem)
Installed mods:

  • Assembly4 0.61.1
  • Curves workbench 0.6.81
  • Fasteners Workbench 0.5.65

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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