lifelike / hexmapextension

Inkscape extension for creating hex grids suitable for boardgame maps.
129 stars 16 forks source link

Inkscape has received additional data from the script executed. #33

Closed dereks closed 4 years ago

dereks commented 4 years ago

When I modify any value in the plug-in's pop-up dialog, I get an "Information" dialog window that says:

Inkscape has received additional data from the script executed. The script did not return an error, but this may indicate the results will not be as expected.

[Then inside a textbox within the window:]

  File "hexmap.py", line 136
    line.set("stroke-width", str(self.unittouu("%fin" % (1 / 90.0))))
                                                                    ^
TabError: inconsistent use of tabs and spaces in indentation

I have not yet been able to create a Hex map. I'm using the Ubuntu Inkscape package:

derek@dell-g3:~$ dpkg --list | grep inkscape
ii  inkscape                                   0.92.3-1                                        amd64        vector-based drawing program
dereks commented 4 years ago

There were two lines with bad tabs: 136 and 155. I fixed those, and now get the same dialog window but with the following message:

Traceback (most recent call last):
  File "/usr/share/inkscape/extensions/inkex.py", line 113, in <module>
    from lxml import etree
ModuleNotFoundError: No module named 'lxml'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "hexmap.py", line 3, in <module>
    import inkex
  File "/usr/share/inkscape/extensions/inkex.py", line 119, in <module>
    "python-lxml\n\nTechnical details:\n%s" % (e, )))
  File "/usr/share/inkscape/extensions/inkex.py", line 101, in errormsg
    if isinstance(msg, unicode):
NameError: name 'unicode' is not defined

I do have lxml installed:

derek@dell-g3:~/.config/inkscape/extensions$ python2.7
Python 2.7.15+ (default, Oct  7 2019, 17:39:04) 
[GCC 7.4.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import lxml
>>> from lxml import etree
>>> 

My system default python was 3.7. I tried updating the system default with

derek@dell-g3:~/.config/inkscape/extensions$ sudo update-alternatives --config python
There are 2 choices for the alternative python (providing /usr/bin/python).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /usr/bin/python3.6   2         auto mode
* 1            /usr/bin/python2.7   1         manual mode
  2            /usr/bin/python3.6   2         manual mode

Press <enter> to keep the current choice[*], or type selection number: 

That did not help.

I also tried editing the script to explicitly use Python 2.7, figuring it's a SystemPath issue, but that didn't help either:

#!/usr/bin/env python2.7

I don't know why this script can't find my Python2.7 libraries. I have used "minconda" on this workstation, maybe that messed it up.

dereks commented 4 years ago

It was minconda messing it up. If I remove the conda init from my ~/.bashrc then the script runs. Finally!

Thanks for publishing this.

dereks commented 4 years ago

I updated to the latest GitHub master branch, because I want some of the new features, and now the dialog has this text:

Usage: hexmap.py [options] SVGfile

hexmap.py: error: no such option: --tab

Don't know why...

Nevermind, it was an incorrect file copy. The latest master is working for me on Ubuntu.

I recommend publishing a new release. The plugin has come far since the last release, nice job!

lifelike commented 4 years ago

Thanks! Good to hear this solved itself. I will have to make a new release to support Inkscape 1.0 soon anyway, so not sure if there will be one before that.