pystl

Peter Otten __peter__ at web.de
Wed Aug 17 08:44:00 EDT 2016


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.


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /