Błąd importu: 'from uncompyle6.main import decompile' w skrycpie pod Cygwinem

Odpowiedz Nowy wątek
2019-08-31 13:07
0

Mam zainstalowanego Pythona 2.7 z narzędziem do dekompilacji zwane uncompyle6 pod Cygwinem.
Chciałem uruchomić skrypt z GitHub, który zamienia bytecode w czytelny kod, ale dostaję oto taki komunikat po uruchomieniu:

$ python deshal.py
Traceback (most recent call last):
  File "deshal.py", line 3, in <module>
    from uncompyle6.main import decompile
ImportError: cannot import name decompile

Nie wiem czy to coś zmienia, ale instalowałem uncomyple6 taką metodą:

tar -xvzf uncompyle6-2.2.0.tar.gz
cd uncompyle6-2.2.0
python setup.py install 

Za pomocą 'python2 -m pip install uncompyle6==2.2.0 ' coś nie chciało działać.

Co mogę poprawić w skrypcie, żeby zadziałał?

Tak wyglądają pierwsze dwie linijki 'deshal.py':

from uncompyle6.main import decompile
import marshal,time,sys,os,marcode

Chyba, że uncompyle źle zainstalowałem, sam dokładnie nie wiem, bo na co dzień nie zajmuję się pythonem, a skryptu potrzebuję żeby naprawić inny skrypt.

Pozostało 580 znaków

2019-08-31 13:49
0

A czemu from uncompyle6.main import ..., a nie from uncompyle6 import ...?


Pozostało 580 znaków

2019-09-04 11:01
0

Chyba rozwiązałem mój problem sam, poszukałem paru informacji w necie, lekko zmodyfikowałem kod i powstało takie coś:

import sys
from sys import stdout
import uncompyle6
from uncompyle6.main import *
import marshal
x = marshal.loads('BYTECODE')
uncompyle6.main.uncompyle(2.7, x, sys.stdout)

Działa przy mniejszych kodach bajtowych, na jednym takim długim wczytuje tylko podstawowe informacje i obciąża procesor i nie odwraca na czytelny kod pythona. Ale to chyba będę musiał na Stack Overflow popytać, bo coś mi się wydaję że marne szanse uzyskać tutaj odpowiedź.

Pozostało 580 znaków

2019-09-05 17:05

Wiadomość dla ciekawskich:

uncompyle6 version 3.4.0
uncompyle6.main.decompile(2.7, x, sys.stdout)

uncompyle6 version 2.2.0
uncompyle6.main.uncompyle(2.7, x, sys.stdout)

Aktualizacja do nowszej wersji biblioteki pozwala spokojnie odpalić ten skrypt, choć rezultaty są takie same jak w przypadku tego krótszego kodu.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0