Skip to content

Instantly share code, notes, and snippets.

@natevw
Last active March 17, 2024 21:37
Show Gist options
  • Star 13 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save natevw/3e6fc929aff358b38c0a to your computer and use it in GitHub Desktop.
Save natevw/3e6fc929aff358b38c0a to your computer and use it in GitHub Desktop.
how I got FlatCAM 8.1 working on OS X [a long time ago — see comment thread for lots of good tips from others!]
brew update
brew install pyqt geos spatialindex
easy_install pip
pip install virtualenv
cd Development/Others\'/
mkdir FlatCAM
cd FlatCAM
virtualenv env
source env/bin/activate
pip install numpy matplotlib rtree scipy shapely simplejson
# copy contents of FlatCAM_8.1.zip into FlatCAM folder
python FlatCAM.py
@roamerP
Copy link

roamerP commented Feb 9, 2022

Hi, when running python3 FlatCAM.py I get ModuleNotFoundError: No module named 'ezdxf.math.vector'. How do I fix it?

I am on a MacBook Pro M1 with MacOS Monterey.
Regards RonnyP

@Day0Dreamer
Copy link

Well, I got it to run on macOS Monterey v12.1 Beta (21C5021h)!

After countless hours of trying to get it to work, I caved in and used Homebrew to install it, which almost worked - I only got the AttributeError: module 'vispy.visuals.markers' has no attribute '_marker_dict' error... ;)

Then I decided to give another try with @mjparme's instructions, with one addition - in requirements.txt file I didn't remove gdal (it didn't throw an error anymore, but it may also be due to Homebrew install) AND I set vispy==0.6.6 (v0.9.3 was installed). Than I ran pip3 install -r requirements.txt again, then python3 FlatCAM.py and... voilà! 🎆

Needless to say that Homebrew version now works as well ;)

image

That's how I got to work the latest beta on Windows11 with WSL 2 (Ubuntu)

@FlyingSamson
Copy link

I wonder if it would be possible to create a FlatCAM conda package and then create a conda environment that could be shared so FlatCAM is just ready to go?

For any Conda users out there, below is the yaml file I used to get FlatCam Beta 8.994 running on an M2 Pro chip with osx-64 as well as osx-arm64 (plus point of the latter is the native support of the dark system theme). I basically took the contents of requirements.txt and installed all but or ortools and rasterio through conda and additionally enforced vispy<=0.9.0 which is the last version where the _marker_dict still existed.

Not sure if this is relevant, but I used micromamba to create the conda environment from this environment file.

For osx-arm64:

micromamba create -n FlatCAM -f <path to FlatCAM.yml>

For osx-64:

CONDA_SUBDIR=osx-64 micromamba create -n FlatCAM -f <path to FlatCAM.yml>

Then just activate that environment

micromamba activate FlatCAM

and run in the unzipped Beta 8.994 directory

python FlatCam.py

Maybe this could be used as starting point for a Conda recipe?

# Content of File FlatCAM.yml
name: FlatCAM
channels:
  - conda-forge
dependencies:
  - python=3.8
  - pyqt>=5.12.1
  - numpy>=1.16
  - matplotlib>=3.1
  - cycler>=0.10
  - python-dateutil>=2.1
  - kiwisolver>=1.1
  - six
  - setuptools
  - dill
  - rtree
  - pyopengl
  - vispy<=0.9.0          # starting with 0.9.1 _marker_dict is gone
  #- ortools-python>=7.0  # only available on linux, use pip for the moment
  - svg.path>=4.0
  - simplejson
  - shapely>=1.7.0
  - freetype-py
  - fontTools
  #- rasterio             # produces missing gdal library error use pip for now
  - lxml
  - ezdxf
  - qrcode>=6.1
  - reportlab>=3.5
  - svglib
  - gdal
  - pyserial>=3.4
  - pip:
    - ortools>=7.0
    - rasterio

@dhysuiej
Copy link

Does anyone know whether a version of FlatCAM compatible with macOS Catalina could be built directly on Github Actions?

I'm currently following the steps in this video, but it's taking me too long to install pyqt via homebrew.

@jimwildman
Copy link

jimwildman commented Jun 17, 2023 via email

@SurathepThonthan
Copy link

FlatCAM_beta_8.994_sources % python FlatCAM.py

Traceback (most recent call last):
File "/Users//FlatCAM/FlatCAM_beta_8.994_sources/FlatCAM.py", line 6, in
from app_Main import App
File "/Users//FlatCAM/FlatCAM_beta_8.994_sources/app_Main.py", line 47, in
from appCommon.Common import LoudDict
File "/Users//FlatCAM/FlatCAM_beta_8.994_sources/appCommon/Common.py", line 88, in
class LoudUniqueList(list, collections.MutableSequence):
^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'collections' has no attribute 'MutableSequence'

plc help me

@alexcode9
Copy link

if you are using python 3.10+ change import collection in appCommon/Common.py to

import collection.abc
collections.Iterable = collections.abc.Iterable
collections.Mapping = collections.abc.Mapping
collections.MutableSet = collections.abc.MutableSet
collections.MutableMapping = collections.abc.MutableMapping

@alexrohde42
Copy link

alexrohde42 commented Mar 15, 2024

if you are using python 3.10+ change import collection in appCommon/Common.py to

import collection.abc
collections.Iterable = collections.abc.Iterable
collections.Mapping = collections.abc.Mapping
collections.MutableSet = collections.abc.MutableSet
collections.MutableMapping = collections.abc.MutableMapping

After that I get the error ModuleNotFoundError: No module named 'ezdxf.math.vector'
Module ezdxf is installed

How can I fix it?

Thanks for an reply

@FlyingSamson
Copy link

After that I get the error ModuleNotFoundError: No module named 'ezdxf.math.vector'

This was fixed on the Beta branch in this commit
See also this issue

@FlyingSamson
Copy link

I'm currently in the process of getting FlatCAM build with MacPorts.

I finally got it all working, but it will still take some time until I got all newly created port files for flatcams dependencies into shape to get them into the upstream macports repo.

One thing I wanted to share here, though: The problem with

AttributeError: module 'vispy.visuals.markers' has no attribute '_marker_dict' error

is due to a "patch" in appGui/VisPyPatches.py, which has long been available in upstream VisPy. So lines 16-34 in this file can safely be removed and then flatcam also runs with newer (i.e., > 0.9.0) vispy versions.

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