View Issue Details

IDProjectCategoryView StatusLast Update
0002973FreeCADBugpublic2019-06-19 14:57
Reporterian.reesAssigned Tochrisb 
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product Version0.17 
Target Version0.18Fixed in Version0.19 
Summary0002973: Path to FreeCAD.app can't contain unicode (in Python2 based install)
DescriptionIf the path to FreeCAD.app (MacOS application bundle for FreeCAD), or just the FreeCAD binary, contains unicode characters outside of the ASCII range then it won't launch properly. I suspect this comes from the app initialisation python script ( src/App/FreeCADInit.py ), which means that it likely occurs on other platforms than MacOS as well.
Steps To Reproduce1) Make directory named uñîcøde
2) Copy FreeCAD.app in to it
3) Try to launch FreeCAD.app

Observe popup containing text like:

While initializing FreeCAD the following exception occurred: ''ascii' codec can't encode character u'\u0303' in position 23: ordinal not in range(128)'

Python is searching for its files in the following directories:
:/Users/irees/Desktop/uñîcøde/FreeCAD.app/Contents/lib/python27.zip:/Users/irees/Desktop/uñîcøde/FreeCAD.app/Contents/lib/python2.7:/Users/irees/Desktop/uñîcøde/FreeCAD.app/Contents/lib/python2.7/plat-darwin:/Users/irees/Desktop/uñîcøde/FreeCAD.app/Contents/lib/python2.7/plat-mac:/Users/irees/Desktop/uñîcøde/FreeCAD.app/Contents/lib/python2.7/plat-mac/lib-scriptpackages:/Users/irees/Desktop/uñîcøde/FreeCAD.app/Contents/lib/python2.7/lib-tk:/Users/irees/Desktop/uñîcøde/FreeCAD.app/Contents/lib/python2.7/lib-old:/Users/irees/Desktop/uñîcøde/FreeCAD.app/Contents/lib/python2.7/lib-dynload

Python version information:
2.7.13 (default, Dec 18 2016, 07:03:34)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)]

Please contact the application's support team for more information.

Additional InformationSource based on e3d558410 (git master 19th March 2017)
Tagspython, unicode

Relationships

related to 0001672 closedwmayer Raytracing Raytracing export to POV-Ray - respect ASCII convention for I/O filenames 
related to 0003588 closedwmayer FreeCAD The path to the Addons does not allow special characters 

Activities

Kunda1

2017-11-05 11:58

administrator   ~0010381

Forum thread: https://forum.freecadweb.org/viewtopic.php?f=8&t=25217

wmayer

2017-12-02 19:00

administrator   ~0010511

This also happens on Windows and Linux.

With https://github.com/FreeCAD/FreeCAD/commit/1cfae464b4af12c5483c2495fae360bbf3b4c0cd FreeCAD at least starts on Windows but is not able to find any of its extension modules. I guess this is related to limitations in Python2.

wmayer

2017-12-03 07:09

administrator   ~0010512

I have refreshed my Py3 build on Ubuntu and when running FreeCAD from a path with uñîcøde inside the application just starts normally without any problems.
So, IMO this is mainly a Py2 issue and since for 0.17 no official Py3 support is planned I will postpone this for 0.18.

Kunda1

2019-02-27 20:45

administrator   ~0012786

@wmayer this ticket is currently considered a release blocker. Is it really?

wmayer

2019-02-27 21:01

administrator   ~0012789

It's not a blocker, it's maybe a major error but not more! And it's not a FreeCAD bug but a Python2 bug.

The user has to be aware that he cannot put the binaries at an arbitrary location which is not a big limitation.

As written above the actual reason of the issue is that Py2 doesn't handle it correctly if the system path contains characters outside 7-bit ascii and that on Windows or Linux we can see similar problems.
As far as I can see this is fixed in Py3.

Kunda1

2019-02-27 21:26

administrator   ~0012790

@wmayer Thanks. I'll relabel the ticket.

So should we change the ticket name to something like:
Instruct users to not put binaries in arbitrary locations if they run py2? Or should we just close this ticket since we're migrating to py3 and less concerned with py2 remaining issues?

wmayer

2019-02-28 10:23

administrator   ~0012803

Before closing it a macOS user must verify that it works with Py3.

Kunda1

2019-02-28 16:49

administrator   ~0012805

@chrisb care to test this on MacOS built with Py3?

Issue History

Date Modified Username Field Change
2017-03-18 22:53 ian.rees New Issue
2017-03-18 22:53 ian.rees Tag Attached: unicode python
2017-03-24 16:25 Kunda1 Tag Attached: python
2017-03-24 16:25 Kunda1 Tag Attached: unicode
2017-03-24 16:25 Kunda1 Tag Detached: unicode python
2017-11-05 11:58 Kunda1 Note Added: 0010381
2017-11-05 11:58 Kunda1 Additional Information Updated View Revisions
2017-11-05 12:02 Kunda1 Additional Information Updated View Revisions
2017-11-05 13:52 Kunda1 Target Version => 0.17
2017-11-05 13:53 Kunda1 Status new => confirmed
2017-11-21 16:11 Kunda1 Severity major => block
2017-11-24 11:31 Kunda1 Relationship added related to 0002908
2017-12-02 17:11 wmayer Relationship deleted related to 0002908
2017-12-02 19:00 wmayer Note Added: 0010511
2017-12-03 07:09 wmayer Target Version 0.17 => 0.18
2017-12-03 07:09 wmayer Note Added: 0010512
2018-07-03 02:29 Kunda1 Relationship added related to 0001672
2018-09-13 22:08 wmayer Relationship added related to 0003588
2018-09-14 12:56 Kunda1 Relationship added related to 0002908
2018-09-14 16:04 wmayer Relationship deleted related to 0002908
2018-10-10 17:48 Kunda1 Relationship added related to 0003632
2018-10-11 19:40 wmayer Relationship deleted related to 0003632
2019-02-27 20:45 Kunda1 Note Added: 0012786
2019-02-27 21:01 wmayer Note Added: 0012789
2019-02-27 21:26 Kunda1 Note Added: 0012790
2019-02-27 21:27 Kunda1 Severity block => major
2019-02-27 21:27 Kunda1 Summary Path to FreeCAD.app can't contain unicode => Path to FreeCAD.app can't contain unicode (in Python2 based install)
2019-02-28 10:23 wmayer Note Added: 0012803
2019-02-28 16:49 Kunda1 Note Added: 0012805
2019-06-19 06:25 chrisb Assigned To => chrisb
2019-06-19 06:25 chrisb Status confirmed => closed
2019-06-19 06:25 chrisb Resolution open => fixed
2019-06-19 14:57 Kunda1 Fixed in Version => 0.19