Podshot / MCEdit-Unified

Combined MCEdit & Pymclevel repository.
http://podshot.github.io/MCEdit-Unified/
ISC License
484 stars 109 forks source link

File names encoding issues (virtualenv issues) #515

Closed Brottweiler closed 9 years ago

Brottweiler commented 9 years ago

Trying to run from source, but virtualenv ENV gives me trouble:

Using base prefix '/usr'
New python executable in ENV/bin/python3
Also creating executable in ENV/bin/python
Installing setuptools, pip, wheel...
  Complete output from command /home/brott/Download...fied/ENV/bin/python3 -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip wheel:
  Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "/usr/lib/python3.5/site-packages/virtualenv_support/pip-7.1.2-py2.py3-none-any.whl/pip/__init__.py", line 13, in <module>
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "/usr/lib/python3.5/site-packages/virtualenv_support/pip-7.1.2-py2.py3-none-any.whl/pip/utils/__init__.py", line 23, in <module>
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "/usr/lib/python3.5/site-packages/virtualenv_support/pip-7.1.2-py2.py3-none-any.whl/pip/_vendor/pkg_resources/__init__.py", line 30, in <module>
  File "/home/brott/Downloads/MCEdit-Unified/pkgutil.py", line 545
    except IOError, msg:
                  ^
SyntaxError: invalid syntax
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
  File "/usr/bin/virtualenv", line 3, in <module>
    virtualenv.main()
  File "/usr/lib/python3.5/site-packages/virtualenv.py", line 832, in main
    symlink=options.symlink)
  File "/usr/lib/python3.5/site-packages/virtualenv.py", line 1004, in create_environment
    install_wheel(to_install, py_executable, search_dirs)
  File "/usr/lib/python3.5/site-packages/virtualenv.py", line 969, in install_wheel
    'PIP_NO_INDEX': '1'
  File "/usr/lib/python3.5/site-packages/virtualenv.py", line 910, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /home/brott/Download...fied/ENV/bin/python3 -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip wheel failed with error code 1

What is up?

codewarrior0 commented 9 years ago

Python 2 is required. Try virtualenv2.

Brottweiler commented 9 years ago

Yeah, you're right.

Brottweiler commented 9 years ago

Just gonna use this issue to ask about pygame. As the readme sais, if you get errors with pygame just install from binary. I installed the pygame package, but get this still:

$ python2 mcedit.py
Running in fixed mode. Support files are in your Documents folder.
Traceback (most recent call last):
  File "mcedit.py", line 13, in <module>
    import splash
  File "/home/brott/Downloads/MCEdit-Unified/splash.py", line 10, in <module>
    import pygame
  File "/home/brott/.local/lib/python2.7/site-packages/pygame/__init__.py", line 95, in <module>
    from pygame.base import *
ImportError: No module named base
codewarrior0 commented 9 years ago

Is it a 32-bit/64-bit mismatch? You installed a 64-bit pygame, so run python2 and check if it's 64-bits or 32-bits.

LaChal commented 9 years ago

Remove (or move) the directory python from /home/brott/.local/lib/python2.7/site-packages and retry running MCEdit.

It looks like your pygame was not properly installed there. (It can happen if you don't have all the Pygame dependencies on your system when installing MCEdit.)

Brottweiler commented 9 years ago

python2 doesn't really give me any information about 32/64bit, but you might be right that there is a mismatch.

Brottweiler commented 9 years ago

@LaChal There is no python directory inside site-packages.

codewarrior0 commented 9 years ago

Try python2 -c "import platform; print platform.architecture()"

Brottweiler commented 9 years ago

64bit

codewarrior0 commented 9 years ago

The AUR package installs pygame to /usr/lib. If you didn't do anything special to install it to ~/.local/lib, then remove ~/.local/lib/python2.7/site-packages/pygame.

Otherwise, reinstall pygame, and verify that ~/.local/lib/python2.7/site-packages/pygame/base.so exists.

Brottweiler commented 9 years ago

The AUR package is python-pygame, the repo one is python2-pygame. Doesn't seem to work regardless which one I install, and it doesn't install to .local obviously. I could just install from source within the virtualenv I guess, right? But not sure how to do that actually.

Brottweiler commented 9 years ago

Disgredard that. I tried to run MCEdit after installing python2-pygame while still in the virtualenv. It works now.

Brottweiler commented 9 years ago

Using this issue again for more issues:

Starting MCEdit gives this

[   ERROR][          pymclevel.nbt.py:639]:Failed to import Cythonized nbt file. Running on (very slow) pure-python nbt fallback.
[   ERROR][          pymclevel.nbt.py:640]:(Did you forget to run 'setup.py build_ext --inplace'?)
[   ERROR][          pymclevel.nbt.py:641]:No module named _nbt

Then, selecting a world crashes MCEdit:

[   ERROR][                   root.py:776]:MCEdit version Unified v1.4.0.1 for Minecraft 1.8/1.9
Traceback (most recent call last):
  File "mcedit.py", line 815, in <module>
    main(sys.argv)
  File "mcedit.py", line 774, in main
    MCEdit.main()
  File "mcedit.py", line 629, in main
    rootwidget.run()
  File "/home/brott/Downloads/MCEdit-Unified/albow/root.py", line 168, in run
    self.run_modal(None)
  File "/home/brott/Downloads/MCEdit-Unified/albow/root.py", line 233, in run_modal
    self.gl_draw_all(self, (0, 0))
  File "/home/brott/Downloads/MCEdit-Unified/albow/widget.py", line 786, in gl_draw_all
    subwidget.gl_draw_all(root, suboffset)
  File "/home/brott/Downloads/MCEdit-Unified/albow/widget.py", line 786, in gl_draw_all
    subwidget.gl_draw_all(root, suboffset)
  File "/home/brott/Downloads/MCEdit-Unified/albow/widget.py", line 786, in gl_draw_all
    subwidget.gl_draw_all(root, suboffset)
  File "/home/brott/Downloads/MCEdit-Unified/albow/widget.py", line 786, in gl_draw_all
    subwidget.gl_draw_all(root, suboffset)
  File "/home/brott/Downloads/MCEdit-Unified/albow/widget.py", line 783, in gl_draw_all
    self.gl_draw_self(root, offset)
  File "/home/brott/Downloads/MCEdit-Unified/albow/openglwidgets.py", line 22, in gl_draw_self
    self.gl_draw_viewport()
  File "/home/brott/Downloads/MCEdit-Unified/albow/openglwidgets.py", line 28, in gl_draw_viewport
    self.gl_draw()
  File "/home/brott/Downloads/MCEdit-Unified/viewports/camera.py", line 1828, in gl_draw
    self.render()
  File "/home/brott/Downloads/MCEdit-Unified/viewports/camera.py", line 1871, in render
    t.drawToolMarkers()
  File "/home/brott/Downloads/MCEdit-Unified/editortools/player.py", line 810, in drawToolMarkers
    self.markerList.call(self._drawToolMarkers)
  File "/home/brott/Downloads/MCEdit-Unified/glutils.py", line 163, in call
    self.makeList(drawFunc)
  File "/home/brott/Downloads/MCEdit-Unified/glutils.py", line 142, in makeList
    drawFunc()
  File "/home/brott/Downloads/MCEdit-Unified/editortools/player.py", line 1019, in _drawToolMarkers
    self.drawCage(x, y, z)
  File "/home/brott/Downloads/MCEdit-Unified/editortools/player.py", line 1028, in drawCage
    cageTexVerts *= pixelScale
TypeError: Cannot cast ufunc multiply output from dtype('float64') to dtype('uint16') with casting rule 'same_kind'

==================================
                          MCEdit has crashed
==================================
Press the Enter key to close this window
naor2013 commented 9 years ago

What Numpy version do you have? Might not be related, though

Brottweiler commented 9 years ago

Not sure how to check, but I installed it via pip today so...

LaChal commented 9 years ago

Hmmm...

Concerning the first error (the _nbt one), it's more a warning than a strict error. Look at the Linux doc (inside MCEdit directory) to have more details. But, basicaly, the full Python NBT support is used if the binary one (a .so file) is not found. And you'll need Cython to build the binary support.

Concerning the other issue, as said Naor, it can be related to a Python dependency. You can run the installer again (the install.sh file in MCEdit directory) and accept the dependency check. You'll have a summary about the (non-)compliant Python library installed on you system. However, it's not sure that the actual installer can install the required library version for MCEdit. Note that the installer tries to install the Python dependencies for the user only( in ~/.local sub folders), and from sources.

If some dependencies can't be installed by the installer, install them with you package manager.

If that does not work, please, open another issue, and join the console output and the mcedit.log file you can find in the MCEdit directory.

Leaking few stuff, I confess the binaries for NBT and Pocket Edition worlds can work on some .deb and .rpm based Linuxes without recompilation on the user's machine. And a future version of the installer will be smarter concerning dependencies...

Brottweiler commented 9 years ago

I followed this when installing, so no install.sh was used. Where can I find it?

I did notice I had the python2-numpy package installed, so I uninstalled the one that I installed via pip. But it didn't make a difference.

LaChal commented 9 years ago

Eh, right, you're running from source. (Read you first post, but I guess I was tired at this time...)

The install.sh file is available when using the .run file provided in the releases. You can download the MCEdit.v1.4.0.1.Lin.Universal.run file and run it. A mcedit directory will be created alongside the .run and the installer started automatically. Just answer 'no' to all questions, except on the disclaimer screen and the one which ask you to start the first step of installation (the dependecy check). This will show you a list of installed/missing/uncompliant dependencies.

I've also remarked that some Python packages may not install well when using pip/easy_install. You may prefer to use your package manager to install them.

Brottweiler commented 9 years ago

image

Posting log again since it looks different but might be the same thing. This is not running from source but from the mcedit.sh from the release version.

Starting MCEdit...
Running in fixed mode. Support files are in your Documents folder.
Splash load...
[   ERROR][          pymclevel.nbt.py:639]:Failed to import Cythonized nbt file. Running on (very slow) pure-python nbt fallback.
[   ERROR][          pymclevel.nbt.py:640]:(Did you forget to run 'setup.py build_ext --inplace'?)
[   ERROR][          pymclevel.nbt.py:641]:No module named _nbt
*** MCEDIT DEBUG: file_dialog: /home/brott/Downloads/mcedit/albow/file_dialogs.pyc
*** MCEDIT DEBUG: directory: /home/brott/Downloads/mcedit/albow
*** MCEDIT DEBUG: current directory: /home/brott/Downloads/mcedit
*** Xlib version 0.14 found in user's libraries.
Minecraft_Server.jar storage initialized.
Each server is stored in a subdirectory of /home/brott/.mcedit/MCEdit/ServerJarStorage named with the server's version number
Cached servers:  []
Xlib.protocol.request.QueryExtension
[   ERROR][                   root.py:776]:MCEdit version Unified v1.4.0.1 for Minecraft 1.8/1.9
Traceback (most recent call last):
  File "../bin3/mcedit/mcedit.py", line 815, in <module>
  File "../bin3/mcedit/mcedit.py", line 774, in main
  File "../bin3/mcedit/mcedit.py", line 629, in main
  File "../bin3/mcedit/albow/root.py", line 168, in run
  File "../bin3/mcedit/albow/root.py", line 233, in run_modal
  File "../bin3/mcedit/albow/widget.py", line 786, in gl_draw_all
  File "../bin3/mcedit/albow/widget.py", line 786, in gl_draw_all
  File "../bin3/mcedit/albow/widget.py", line 786, in gl_draw_all
  File "../bin3/mcedit/albow/widget.py", line 786, in gl_draw_all
  File "../bin3/mcedit/albow/widget.py", line 783, in gl_draw_all
  File "../bin3/mcedit/albow/openglwidgets.py", line 22, in gl_draw_self
  File "../bin3/mcedit/albow/openglwidgets.py", line 28, in gl_draw_viewport
  File "../bin3/mcedit/viewports/camera.py", line 1818, in gl_draw
  File "../bin3/mcedit/viewports/camera.py", line 1861, in render
  File "../bin3/mcedit/editortools/player.py", line 810, in drawToolMarkers
  File "../bin3/mcedit/glutils.py", line 163, in call
  File "../bin3/mcedit/glutils.py", line 142, in makeList
  File "../bin3/mcedit/editortools/player.py", line 1019, in _drawToolMarkers
  File "../bin3/mcedit/editortools/player.py", line 1028, in drawCage
TypeError: Cannot cast ufunc multiply output from dtype('float64') to dtype('uint16') with casting rule 'same_kind'

==================================
                          MCEdit has crashed
==================================
Press the Enter key to close this window
Press any key to close.

The traceback starts when MCEdit crashes when I select a world.

LaChal commented 9 years ago

Thank you for the update. Same file, same line, same error.

I guess your numpy version is too high. According to numpy documentation: "Default casting for inplace operations will change to ‘same_kind’ in Numpy 1.10.0. This will certainly break some code that is currently ignoring the warning."

Please downgrade your numpy to 1.9 or lower (but not below 1.6.2). This shall fix your issue.

To install a specific module version, you can use setuptools easy_install utility: easy_install2.7 <package_name>==<version>. If you don't want to override your system installed packages, you can install for the user only using: easy_install2.7 --user <package_name>==<version>. Generaly, the packages will be installed in ~/.local/lib/python2.7/site-package.

Brottweiler commented 9 years ago

I installed it. pip freeze sais numpy==1.9.0. MCEdit still crashes. :confused:

LaChal commented 9 years ago

MCEdit still crashes. :/

With the same error, I guess.

What says the dependencies check in the installer?

Brottweiler commented 9 years ago

Yes, with same error. I will post the log here anyway to make sure:

Running in fixed mode. Support files are in your Documents folder.
Splash load...
[   ERROR][          pymclevel.nbt.py:639]:Failed to import Cythonized nbt file. Running on (very slow) pure-python nbt fallback.
[   ERROR][          pymclevel.nbt.py:640]:(Did you forget to run 'setup.py build_ext --inplace'?)
[   ERROR][          pymclevel.nbt.py:641]:No module named _nbt
*** MCEDIT DEBUG: file_dialog: /home/brott/Downloads/MCEdit-Unified/albow/file_dialogs.pyc
*** MCEDIT DEBUG: directory: /home/brott/Downloads/MCEdit-Unified/albow
*** MCEDIT DEBUG: current directory: /home/brott/Downloads/MCEdit-Unified
*** Xlib version 0.14 found in user's libraries.
Minecraft_Server.jar storage initialized.
Each server is stored in a subdirectory of /home/brott/.mcedit/MCEdit/ServerJarStorage named with the server's version number
Cached servers:  []
Xlib.protocol.request.QueryExtension
[   ERROR][                   root.py:776]:MCEdit version Unified v1.4.0.1 for Minecraft 1.8/1.9
Traceback (most recent call last):
  File "mcedit.py", line 815, in <module>
    main(sys.argv)
  File "mcedit.py", line 774, in main
    MCEdit.main()
  File "mcedit.py", line 629, in main
    rootwidget.run()
  File "/home/brott/Downloads/MCEdit-Unified/albow/root.py", line 168, in run
    self.run_modal(None)
  File "/home/brott/Downloads/MCEdit-Unified/albow/root.py", line 233, in run_modal
    self.gl_draw_all(self, (0, 0))
  File "/home/brott/Downloads/MCEdit-Unified/albow/widget.py", line 786, in gl_draw_all
    subwidget.gl_draw_all(root, suboffset)
  File "/home/brott/Downloads/MCEdit-Unified/albow/widget.py", line 786, in gl_draw_all
    subwidget.gl_draw_all(root, suboffset)
  File "/home/brott/Downloads/MCEdit-Unified/albow/widget.py", line 786, in gl_draw_all
    subwidget.gl_draw_all(root, suboffset)
  File "/home/brott/Downloads/MCEdit-Unified/albow/widget.py", line 786, in gl_draw_all
    subwidget.gl_draw_all(root, suboffset)
  File "/home/brott/Downloads/MCEdit-Unified/albow/widget.py", line 783, in gl_draw_all
    self.gl_draw_self(root, offset)
  File "/home/brott/Downloads/MCEdit-Unified/albow/openglwidgets.py", line 22, in gl_draw_self
    self.gl_draw_viewport()
  File "/home/brott/Downloads/MCEdit-Unified/albow/openglwidgets.py", line 28, in gl_draw_viewport
    self.gl_draw()
  File "/home/brott/Downloads/MCEdit-Unified/viewports/camera.py", line 1828, in gl_draw
    self.render()
  File "/home/brott/Downloads/MCEdit-Unified/viewports/camera.py", line 1871, in render
    t.drawToolMarkers()
  File "/home/brott/Downloads/MCEdit-Unified/editortools/player.py", line 810, in drawToolMarkers
    self.markerList.call(self._drawToolMarkers)
  File "/home/brott/Downloads/MCEdit-Unified/glutils.py", line 163, in call
    self.makeList(drawFunc)
  File "/home/brott/Downloads/MCEdit-Unified/glutils.py", line 142, in makeList
    drawFunc()
  File "/home/brott/Downloads/MCEdit-Unified/editortools/player.py", line 1019, in _drawToolMarkers
    self.drawCage(x, y, z)
  File "/home/brott/Downloads/MCEdit-Unified/editortools/player.py", line 1028, in drawCage
    cageTexVerts *= pixelScale
TypeError: Cannot cast ufunc multiply output from dtype('float64') to dtype('uint16') with casting rule 'same_kind'

==================================
                          MCEdit has crashed
==================================
Press the Enter key to close this window

image

Well I guess that explains it, how do I remove the old version? :confounded:

LaChal commented 9 years ago

The dependency check says your numpy is still 1.10.0...

If you run in a virtualenv, make sure that the right version of numpy is installed in. Otherwise, check that you system numpy version using a Python 2 console:

>>> import numpy
>>> numpy.version.version
Brottweiler commented 9 years ago

I've used the . ENV/bin/activate when installing the dependencies, but when I run python2 mcedit.py while in the virtualenv I get this

Running in fixed mode. Support files are in your Documents folder.
Traceback (most recent call last):
  File "mcedit.py", line 13, in <module>
    import splash
  File "/home/brott/Downloads/MCEdit-Unified/splash.py", line 10, in <module>
    import pygame
ImportError: No module named pygame

When I launch MCEdit without the virtualenv, then it launches, but then I get that other crash. It seems like inside the virtualenv I have 1.9, outside of it 1.10.

Edit: Wasn't able to install pygame in the virtualenv, so I installed the package for my distro, but it only works outside of virtualenv it seems.

LaChal commented 9 years ago

The traceback says that pygame isn't installed. Do you have it installed outside a virtualenv? If no, you will have to install it in the virtualenv you uses for MCEdit.

Another option is to downgrade the numpy otuside you virtualenv, but this can break other programs on you system...

You can also install the right version for the user only using: easy_install2.7 --user numpy==1.9.0 As I said earlier, this will install the package in ~/.local/lib/python2.7/site-packages. MCEdit is able to see packages installed there before the other ones.

Brottweiler commented 9 years ago

Yeah, in my edit (which was too late) I mentioned that I could not install pygame.

Collecting pygame
  Could not find a version that satisfies the requirement pygame (from versions: )
  Some externally hosted files were ignored as access to them may be unreliable (use --allow-external pygame to allow).
No matching distribution found for pygame
LaChal commented 9 years ago

Hmmm...

So, you may want to try one of the solution in may last post.

By the way, did you try to use the --allow-external option to install pygame?

Brottweiler commented 9 years ago
$ pip install pygame
Collecting pygame
  Could not find a version that satisfies the requirement pygame (from versions: )
  Some externally hosted files were ignored as access to them may be unreliable (use --allow-external pygame to allow).
No matching distribution found for pygame

 $ pip install pygame --allow-external pygame
Collecting pygame
  Could not find a version that satisfies the requirement pygame (from versions: )
  Some insecure and unverifiable files were ignored (use --allow-unverified pygame to allow).
No matching distribution found for pygame

 $ pip install pygame --allow-external pygame --allow-unverified pygame
Collecting pygame
  pygame is potentially insecure and unverifiable.
  HTTP error 400 while getting http://www.pygame.org/../../ftp/pygame-1.6.2.tar.bz2 (from http://www.pygame.org/download.shtml)
  Could not install requirement pygame from http://www.pygame.org/../../ftp/pygame-1.6.2.tar.bz2 because of error 400 Client Error: Bad Request
Could not install requirement pygame from http://www.pygame.org/../../ftp/pygame-1.6.2.tar.bz2 because of HTTP error 400 Client Error: Bad Request for URL http://www.pygame.org/../../ftp/pygame-1.6.2.tar.bz2 (from http://www.pygame.org/download.shtml)
LaChal commented 9 years ago

Pygame 1.6.2 ??? This version is quite outdated... (And may be no more available.)

If you can, specify 1.9.1 as pygame version. This is the one used by MCEdit.

Brottweiler commented 9 years ago

pip install pygame==1.9.1release --allow-external pygame --allow-unverified pygame starts downloading it and then it fails with this:

  src/camera.h:42:32: fatal error: linux/videodev.h: No such file or directory
  compilation terminated.
  error: command 'gcc' failed with exit status 1

  ----------------------------------------
  Failed building wheel for pygame
Failed to build pygame
    src/camera.h:42:32: fatal error: linux/videodev.h: No such file or directory
    compilation terminated.
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/home/brott/Downloads/MCEdit-Unified/ENV/bin/python2 -c "import setuptools, tokenize;__file__='/tmp/pip-build-A8gsO5/pygame/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-1KvP_f-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/brott/Downloads/MCEdit-Unified/ENV/include/site/python2.7/pygame" failed with error code 1 in /tmp/pip-build-A8gsO5/pygame
LaChal commented 9 years ago

I was also annoyed with this bug during pygame installation.

Check is you have libv4l1-videodev.h in /usr/include or elsewere on your system.

For the following stuff, you'll need to use root privileges:

  1. In /usr/include create a folder called linux if not already existent.
  2. Create a symbolic link with: sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h.

Then, retry to install pygame in your virtualenv.

Brottweiler commented 9 years ago

Yeah, I googled about it and found that was the most common solution. Everything works now. I go into the git folder, run . ENV/bin/activate then python2 mcedit.py. Everything works. Thanks for your help.

Brottweiler commented 9 years ago

Heh, except Importing schematics. Pressing the Import button in the "hotbar" makes it crash:

Traceback (most recent call last):
  File "mcedit.py", line 815, in <module>
    main(sys.argv)
  File "mcedit.py", line 774, in main
    MCEdit.main()
  File "mcedit.py", line 629, in main
    rootwidget.run()
  File "/home/brott/Downloads/MCEdit-Unified/albow/root.py", line 168, in run
    self.run_modal(None)
  File "/home/brott/Downloads/MCEdit-Unified/albow/root.py", line 271, in run_modal
    mouse_widget.handle_mouse('mouse_down', event)
  File "/home/brott/Downloads/MCEdit-Unified/albow/widget.py", line 399, in handle_mouse
    self.call_handler(name, event)
  File "/home/brott/Downloads/MCEdit-Unified/albow/widget.py", line 481, in call_handler
    return method(*args)
  File "/home/brott/Downloads/MCEdit-Unified/leveleditor.py", line 3400, in mouse_down
    self.selectTool(toolNo)
  File "/home/brott/Downloads/MCEdit-Unified/leveleditor.py", line 3428, in selectTool
    self.parent.currentTool.toolSelected()
  File "/home/brott/Downloads/MCEdit-Unified/editortools/clone.py", line 1217, in toolSelected
    clipFilename = mcplatform.askOpenFile(title='Import a schematic or level...', schematics=True, suffixes=["bo2"])
  File "/home/brott/Downloads/MCEdit-Unified/mcplatform.py", line 222, in askOpenFile
    filename = _askOpen(suffixes)
  File "/home/brott/Downloads/MCEdit-Unified/mcplatform.py", line 220, in _askOpen
    return request_old_filename(suffixes=_suffixes, directory=initialDir)
  File "/home/brott/Downloads/MCEdit-Unified/albow/file_dialogs.py", line 494, in request_old_filename
    dlog = FileOpenDialog(suffixes=suffixes)
  File "/home/brott/Downloads/MCEdit-Unified/albow/file_dialogs.py", line 313, in __init__
    self.directory = os.getcwdu()
  File "/home/brott/Downloads/MCEdit-Unified/albow/file_dialogs.py", line 331, in set_directory
    self.list_box.update()
  File "/home/brott/Downloads/MCEdit-Unified/albow/file_dialogs.py", line 97, in update
    for a, dirnames, filenames in content:
  File "/home/brott/Downloads/MCEdit-Unified/ENV/lib/python2.7/os.py", line 286, in walk
    if isdir(join(top, name)):
  File "/home/brott/Downloads/MCEdit-Unified/ENV/lib/python2.7/posixpath.py", line 73, in join
    path += '/' + b
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 1: ordinal not in range(128)

==================================
                          MCEdit has crashed
==================================
Press the Enter key to close this window
LaChal commented 9 years ago

This is an issue with character encoding.

The fat is MCEdit has its own 'file explorer'. It is used on OSX as a workarround for bugs in the OSX one. This internal 'file exploere' has been activated on Linux too for debugging and testing purpose, but hasn't been unactivated in the 1.4.0.1 release... So I guess you are running from the sources of the latest release.

But it is unactivated in the actual sources.

I propose you two options:

  1. Run from the latest sources.
  2. Edit a file in your current MCEdit installation.

If you choose the second option, open the file mcplatform.py and change the line 71 from platChooser = sys.platform in ('linux2', 'darwin') to platChooser = sys.platform == 'darwin'.

Brottweiler commented 9 years ago

Run from the latest sources.

I run from latest git commit... Is this what you mean? Or do you mean latest release?

LaChal commented 9 years ago

If you use git clone (or git pull if you already have cloned the Git repo), you shall have the latest commit (0bbc61b8a45b905b70199c5c24c3e778c58ec18a). If you don't use Git client, the .zipyou can donwload on the repo main page is up to date with this commit.

Please, verify the line I mentionned in my last post. If it contains only darwin, please look for mcedit.log (in MCEdit directory), post the *** Platform information part and the output of the python sys.getfilesystemencoding() output.

Brottweiler commented 9 years ago

Line 71 and 72 looks like this

#platChooser = sys.platform in ('linux2', 'darwin')
platChooser = sys.platform == 'darwin'
LaChal commented 9 years ago

Hmmm... It's up to date.

But the UnicodeDecodeError shall not happend, since the internal 'file explorer' is not called on Linux.

By the way, are you running Linux or OSX? (I feel a bit stupid with this question. I guess it's Linux, but it wasn't asked before...)

Brottweiler commented 9 years ago

Yeah I'm using Linux. :stuck_out_tongue:

LaChal commented 9 years ago

Thanks :) Something sure is better than something guessed.

Please, consider to provide the log file part and the python output I mentionned. It will help to reproduce and track the bug.

Anyway, thank you for your patience (and answering to the silly questions :p)

Brottweiler commented 9 years ago

Should I make a new issue? Here it is, anyway

Log: https://gist.github.com/ac0dca91a4ae1ad9cff2

Crash:

Running in fixed mode. Support files are in your Documents folder.
Splash load...
[   ERROR][          pymclevel.nbt.py:639]:Failed to import Cythonized nbt file. Running on (very slow) pure-python nbt fallback.
[   ERROR][          pymclevel.nbt.py:640]:(Did you forget to run 'setup.py build_ext --inplace'?)
[   ERROR][          pymclevel.nbt.py:641]:No module named _nbt
*** MCEDIT DEBUG: file_dialog: /home/brott/Downloads/MCEdit-Unified/albow/file_dialogs.pyc
*** MCEDIT DEBUG: directory: /home/brott/Downloads/MCEdit-Unified/albow
*** MCEDIT DEBUG: current directory: /home/brott/Downloads/MCEdit-Unified
*** Xlib version 0.14 found in user's libraries.
Minecraft_Server.jar storage initialized.
Each server is stored in a subdirectory of /home/brott/.mcedit/MCEdit/ServerJarStorage named with the server's version number
Cached servers:  []
Xlib.protocol.request.QueryExtension
[   ERROR][                   root.py:776]:MCEdit version Unified v1.4.0.1 for Minecraft 1.8/1.9
Traceback (most recent call last):
  File "mcedit.py", line 815, in <module>
    main(sys.argv)
  File "mcedit.py", line 774, in main
    MCEdit.main()
  File "mcedit.py", line 629, in main
    rootwidget.run()
  File "/home/brott/Downloads/MCEdit-Unified/albow/root.py", line 168, in run
    self.run_modal(None)
  File "/home/brott/Downloads/MCEdit-Unified/albow/root.py", line 271, in run_modal
    mouse_widget.handle_mouse('mouse_down', event)
  File "/home/brott/Downloads/MCEdit-Unified/albow/widget.py", line 399, in handle_mouse
    self.call_handler(name, event)
  File "/home/brott/Downloads/MCEdit-Unified/albow/widget.py", line 481, in call_handler
    return method(*args)
  File "/home/brott/Downloads/MCEdit-Unified/leveleditor.py", line 3400, in mouse_down
    self.selectTool(toolNo)
  File "/home/brott/Downloads/MCEdit-Unified/leveleditor.py", line 3428, in selectTool
    self.parent.currentTool.toolSelected()
  File "/home/brott/Downloads/MCEdit-Unified/editortools/clone.py", line 1217, in toolSelected
    clipFilename = mcplatform.askOpenFile(title='Import a schematic or level...', schematics=True, suffixes=["bo2"])
  File "/home/brott/Downloads/MCEdit-Unified/mcplatform.py", line 222, in askOpenFile
    filename = _askOpen(suffixes)
  File "/home/brott/Downloads/MCEdit-Unified/mcplatform.py", line 220, in _askOpen
    return request_old_filename(suffixes=_suffixes, directory=initialDir)
  File "/home/brott/Downloads/MCEdit-Unified/albow/file_dialogs.py", line 494, in request_old_filename
    dlog = FileOpenDialog(suffixes=suffixes)
  File "/home/brott/Downloads/MCEdit-Unified/albow/file_dialogs.py", line 313, in __init__
    self.directory = os.getcwdu()
  File "/home/brott/Downloads/MCEdit-Unified/albow/file_dialogs.py", line 331, in set_directory
    self.list_box.update()
  File "/home/brott/Downloads/MCEdit-Unified/albow/file_dialogs.py", line 97, in update
    for a, dirnames, filenames in content:
  File "/home/brott/Downloads/MCEdit-Unified/ENV/lib/python2.7/os.py", line 286, in walk
    if isdir(join(top, name)):
  File "/home/brott/Downloads/MCEdit-Unified/ENV/lib/python2.7/posixpath.py", line 73, in join
    path += '/' + b
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 1: ordinal not in range(128)

==================================
                          MCEdit has crashed
==================================
Press the Enter key to close this window
LaChal commented 9 years ago

The internal 'file explorer' is used because you system (Arch Linux?) doesn't have the requiered Gtk environment that is needed to use the system one. But his is not the problem.

You may have accented/asian/special characters in the names of the files you want to load. Renaming these files shall fix this issue.

It can be usefull if you mind to provide the list of these files, and the Python 2 output of sys.gefilesystemencoding().

Brottweiler commented 9 years ago

I am swedish, so there is possible there are filenames with åäö, but I usually don't use those characters in filenames. What is the directory that the file explorer starts in, so I can check it for weird characters?

LaChal commented 9 years ago

I also have non-english characters, but I don't experience this issue. I used åäö in a file name. No error...

The file explorer start directory depend on what you want to load and on the MCEdit install type.

If your install type is 'Fixed' the Import tool points to ~/.mcedit/MCEdit/Schematics. In Portable mode, it points to a Schematics directory alongside MCEdit one.

The Quick Load, Open... and Save As dialogs point to ~/.minecraft/saves.

Brottweiler commented 9 years ago

Well, .mcedit/MCEdit/Schematics/ is empty...

LaChal commented 9 years ago

You shall have two directories in there: Mobs in Jars and Spawner. You can find them in the stock-schematic directory within MCEdit one.

Don't you have a Schematics directory alongside MCEdit one? Is your install type Fixed or Portable? You can verify in the Options panel.

Brottweiler commented 9 years ago

It's Fixed.

I did have a MCEdit-schematics and schematics which I think I used in older versions of MCEdit. I moved them to see if MCEdit was using them and maybe it would create a fresh folder. It didn't. I remade them and made them empty, still crashes.

LaChal commented 9 years ago

@Brottweiler, any news?

Brottweiler commented 9 years ago

I didn't realise you pushed a new commit that was gonna fix this issue, so I just git pull and tried again, and it still crashes.

Traceback (most recent call last):
  File "mcedit.py", line 815, in <module>
    main(sys.argv)
  File "mcedit.py", line 774, in main
    MCEdit.main()
  File "mcedit.py", line 629, in main
    rootwidget.run()
  File "/home/brott/Downloads/MCEdit-Unified/albow/root.py", line 168, in run
    self.run_modal(None)
  File "/home/brott/Downloads/MCEdit-Unified/albow/root.py", line 271, in run_modal
    mouse_widget.handle_mouse('mouse_down', event)
  File "/home/brott/Downloads/MCEdit-Unified/albow/widget.py", line 399, in handle_mouse
    self.call_handler(name, event)
  File "/home/brott/Downloads/MCEdit-Unified/albow/widget.py", line 481, in call_handler
    return method(*args)
  File "/home/brott/Downloads/MCEdit-Unified/leveleditor.py", line 3400, in mouse_down
    self.selectTool(toolNo)
  File "/home/brott/Downloads/MCEdit-Unified/leveleditor.py", line 3428, in selectTool
    self.parent.currentTool.toolSelected()
  File "/home/brott/Downloads/MCEdit-Unified/editortools/clone.py", line 1217, in toolSelected
    clipFilename = mcplatform.askOpenFile(title='Import a schematic or level...', schematics=True, suffixes=["bo2"])
  File "/home/brott/Downloads/MCEdit-Unified/mcplatform.py", line 233, in askOpenFile
    filename = _askOpen(suffixes)
  File "/home/brott/Downloads/MCEdit-Unified/mcplatform.py", line 231, in _askOpen
    return request_old_filename(suffixes=_suffixes, directory=iDir)
  File "/home/brott/Downloads/MCEdit-Unified/albow/file_dialogs.py", line 494, in request_old_filename
    dlog = FileOpenDialog(suffixes=suffixes)
  File "/home/brott/Downloads/MCEdit-Unified/albow/file_dialogs.py", line 313, in __init__
    self.directory = os.getcwdu()
  File "/home/brott/Downloads/MCEdit-Unified/albow/file_dialogs.py", line 331, in set_directory
    self.list_box.update()
  File "/home/brott/Downloads/MCEdit-Unified/albow/file_dialogs.py", line 97, in update
    for a, dirnames, filenames in content:
  File "/home/brott/Downloads/MCEdit-Unified/ENV/lib/python2.7/os.py", line 286, in walk
    if isdir(join(top, name)):
  File "/home/brott/Downloads/MCEdit-Unified/ENV/lib/python2.7/posixpath.py", line 73, in join
    path += '/' + b
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 1: ordinal not in range(128)