Poul Riis wrote: > I tried the following: > > from pystl import PySTL > with PySTL('stl_test.stl') as stl: > stl.add_triangle((0,0,0),(1,0,0),(0,1,0)) > > I got the following error message: > > Traceback (most recent call last): > File > "C:/Users/pr/AppData/Local/Programs/Python/Python35-32/Lib/idlelib/pystl_module_test_1.py", > line 3, in <module> > with PySTL('stl_test.stl') as stl: > File > "c:\users\pr\appdata\local\continuum\anaconda3\lib\site- packages\pystl\pystl.py", > line 62, in __enter__ > self.write_stl_header() > File > "c:\users\pr\appdata\local\continuum\anaconda3\lib\site- packages\pystl\pystl.py", > line 75, in write_stl_header > self.f.write(struct.pack("80s", header_str)) > struct.error: argument for 's' must be a bytes object
You can fix this particular error by replacing the line header_str = '' with header_str = b'' in the write_stl_header() function which then becomes: def write_stl_header(self): if self.is_bin: header_str = b'' self.f.write(struct.pack("80s", header_str)) self.write_num_triangles_bin() else: self.f.write('solid ' + self.model_name + '\n' ) As this kind of error indicates that the module is primarily used/tested in Python 2 there may be other similar problems. -- https://mail.python.org/mailman/listinfo/python-list