Python Fehler, aber wo

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Freakli
User
Beiträge: 4
Registriert: Samstag 16. Juli 2011, 13:14

Guten Tag,

bin totaler Noob in Sachen Python. Ich habe ein Script von https://github.com/brownan/Minecraft-Overviewer/
Dort sind einige Dateien fehlerhaft, zB. die util.py . Die Datei sieht bei mit aktuell so aus:

Code: Alles auswählen

#    This file is part of the Minecraft Overviewer.
#
#    Minecraft Overviewer is free software: you can redistribute it and/or
#    modify it under the terms of the GNU General Public License as published
#    by the Free Software Foundation, either version 3 of the License, or (at
#    your option) any later version.
#
#    Minecraft Overviewer is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
#    Public License for more details.
#
#    You should have received a copy of the GNU General Public License along
#    with the Overviewer.  If not, see <http://www.gnu.org/licenses/>.

"""
Misc utility routines used by multiple files that don't belong anywhere else
"""

import imp
import os
import os.path
import sys
from subprocess import Popen, PIPE

def get_program_path():
    if hasattr(sys, "frozen") or imp.is_frozen("__main__"):
        return os.path.dirname(sys.executable)
    else:
        try:
            # normally, we're in ./overviewer_core/util.py
            # we want ./
            return os.path.dirname(os.path.dirname(__file__))
        except NameError:
            return os.path.dirname(sys.argv[0])


# does not require git, very likely to work everywhere
def findGitHash():
    this_dir = get_program_path()
    if os.path.exists(os.path.join(this_dir,".git")):
        with_ = open(os.path.join(this_dir,".git","HEAD"))
        data_ = with_.read().strip()
        if data_.startswith("ref: "):
            if not os.path.exists(os.path.join(this_dir, ".git", data[5:])):
                return data
            with_ = open(os.path.join(this_dir, ".git", data[5:]))
            return with_.read().strip()
        else:
            return data
    else:
        try:
            import overviewer_version
            return overviewer_version.HASH
        except:
            return "unknown"

def findGitVersion():
    try:
        p = Popen(['git', 'describe', '--tags'], stdout=PIPE, stderr=PIPE)
        p.stderr.close()
        line = p.stdout.readlines()[0]
        if line.startswith('release-'):
            line = line.split('-', 1)[1]
        # turn 0.1.2-50-somehash into 0.1.2-50
        # and 0.1.3 into 0.1.3
        line = '-'.join(line.split('-', 2)[:2])
        return line.strip()
    except:
        try:
            import overviewer_version
            return overviewer_version.VERSION
        except:
            return "unknown"
Die setup.py meldet aber folgendes:

Code: Alles auswählen

# python setup.py build
Traceback (most recent call last):
  File "setup.py", line 120, in <module>
    setup_kwargs['package_data'] = {'overviewer_core': recursive_package_data('data/textures') + recursive_package_data('data/web_assets')}
  File "setup.py", line 83, in recursive_package_data
    current_path = os.path.relpath(dirpath, package_dir)
AttributeError: 'module' object has no attribute 'relpath'
Es sind anscheinend auch noch mehr Dateien betroffen mit dem reserviertem "with" Attribut.

zB.:

Code: Alles auswählen

# python overviewer.py
overviewer.py:69: Warning: 'with' will become a reserved keyword in Python 2.6
  File "overviewer.py", line 69
    with open(os.path.join(this_dir, "overviewer_core", "src", "overviewer.h")) as f:
            ^
SyntaxError: invalid syntax
Was muss ich bei der setup.py ändern, damit dieser Fehler nicht mehr erscheint?

Mit freundlichen Grüßen,
Patrick Werner
lunar

@Freakli: Die Dateien sind vollkommen in Ordnung. Du musst einfach nur die richtige Python-Version verwenden.
Freakli
User
Beiträge: 4
Registriert: Samstag 16. Juli 2011, 13:14

Mhh, und welche Version würde ich gebrauchen? Es müsste ja eine vor 2.6 sein oder?

Habe bereits python-dev, python-image & python-numeric installiert. Welche Version Python ist weis ich nicht genau.
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Aus der README Datei:

Code: Alles auswählen

This program requires:

    Python 2.6 or 2.7 <http://python.org/download/>
    PIL (Python Imaging Library) <http://www.pythonware.com/products/pil/>
    Numpy <http://scipy.org/Download>
    Either the Minecraft client installed, or a terrain.png file. See the Textures section below.
    A C compiler.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Freakli hat geschrieben:Welche Version Python ist weis ich nicht genau.
Dann frag mal `python -V`.

Aller Wahrscheinlichkeit wird es aber Python 2.5 sein.
Freakli
User
Beiträge: 4
Registriert: Samstag 16. Juli 2011, 13:14

Okay, das mit Python 2.6 las ich ja... Nur dachte ich, dass ich diese hätte, habe 2.5. Installiere oder versuche gerade 2.6 zu installieren mit diesem Tutorial / HowTo: http://projectdaenney.org/2009/building ... bian-lenny

//Edit
Okay, der findet den Source nicht, ein anderes Tut, beschreibt einfach zu downloaden und zu compilen, aber leider ist die Python.org Seite offline?
Temporär oder Netzwerk Problem seitens Client?
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Klappt es mit dieser Anleitung vielleicht besser?

//edit: Japp, klappt bei mir derzeit auch nicht mit python.org, da musste den Download wohl verschieben.
Freakli
User
Beiträge: 4
Registriert: Samstag 16. Juli 2011, 13:14

Okay, mittlerweile hab ich solange compiled biss es lief ;)

In irgendeiner weise habe ich jetzt die 2.5 & 2.6 ist aber nicht schlimm.
Das Script läuft nun wie gewollt :)
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Hauptsache du hast dir dein System nicht zerschossen. Falls das systemweite Python in irgendeiner Form verändert wurde, können diejenigen System-Skripte, die in Python geschrieben sind, unter Umständen Schwierigkeiten bekommen, überhaupt richtig zu laufen.
Antworten