import mathmp: no module named mathmp

Probleme bei der Installation?
Antworten
schlaftier361
User
Beiträge: 4
Registriert: Montag 30. August 2010, 17:35

Hallo,

ich nutze seit einigen Tagen Python 2.7 unter Windows (32 bit). Nun möchte ich mit Zahlen rechnen, die bis zu 2048 bit haben. Da dies mit den vorhandenen math-Datentypen nicht klappt (nur bis 1023 bit), wollte ich mathmp und gmpy ausprobieren. Ich habe beides runtergeladen und installiert und schreibe nun "import mathmp" bzw. "import gmpy" an den Anfang meiner Module - und er halte die Fehlermeldung "ImportError: No module named mathmp".

Unter C:\Python27\Lib\site-packages liegen gmpy.pyd sowie ein Ordner mpmath. Ich habe andere Threads gelesen und vermute, dass also die Dateien in einem falschen Pfad liegen... :K Ich bin wirklich dankbar für eure Hilfe!
fhoech
User
Beiträge: 143
Registriert: Montag 9. April 2007, 18:26

Ähm Du versuchst mathmp zu importieren, das Modul heisst aber mpmath? :)
BlackJack

@schlaftier361: Wie hast Du denn installiert und sind die Module auch für Python 2.7?

Der normale `int`-Typ bzw. `long`-Typ kann problemlos 1024 Bit "lange" Zahlen verarbeiten:

Code: Alles auswählen

In [462]: 2**1024
Out[462]: 1797693134862315907729305190789024733617976978942306572734300811577326
75805500963132708477322407536021120113879871393357658789768814416622492847430639
47412437776789342486548527630221960124609411945308295208500576883815068234246288
1473913110540827237163350510684586298239947245938479716304835356329624224137216L
schlaftier361
User
Beiträge: 4
Registriert: Montag 30. August 2010, 17:35

@fhoech: Du hast Recht, das war natürlich falsch. Das Problem besteht aber weiterhin, und bestand vorher ja auch für gmpy.

@BlackJack: Die Module sind für Python 2.7. Ich habe die Dateien in dem Ordner Python27 gespeichert, anschließend installiert. Jetzt sind sie in \Python27\Lib\site-packages .

Ich möchte folgendes berechnen:
big = (2**a)-1
lognat = float(math.log(big))
primes = big/lognat

num = float((2**a)-1)
prob = primes/num

Ich weiß, dass das nicht optimiert ist, aber das liegt daran, dass die Berechnungen in verschiedenen Modulen stattfinden. Für a=1024 (und bis a=2048) erhalte ich die Fehlermeldung "OverflowError: long int too large to convert to float". Dafür suche ich eine bignum-library...
schlaftier361
User
Beiträge: 4
Registriert: Montag 30. August 2010, 17:35

Ich habe jetzt ein neues Modul geschrieben, in dem weniger umständlich gerechnet wird, und nun wird auch tatsächlich der Logarithmus von Zahlen mit 2048 Bits berechnet. Mein ursprüngliches Problem besteht aber weiterhin und wird mir bald wieder Kopfzerbrechen bereiten...
BlackJack

@schlaftier361: Was ist denn in dem `mpmath`-Ordner? gibt's da eine `__ini__.py` oder `__init__.pyc`? Wenn Du vor dem ``import`` mal `sys.path` ausgeben lässt, ist da der Pfad zu dem Ordner enthalten?
schlaftier361
User
Beiträge: 4
Registriert: Montag 30. August 2010, 17:35

In dem Ordner liegt ein __init__-Python-File. (das habe ich übrigens für gmpy nicht, da gibt es nur gmpy.pyd).

sys.path erzeugt die Ausgabe
"['...\\Python_workspace\\RSA_Factoring\\src',
'...\\Python_workspace\\RSA_Factoring\\src',
...\\Python27',
'...Python27\\DLLs',
...Python27\\lib',
'...\\Python27\\lib\\lib-tk',
'...Python27\\lib\\plat-win',
'...\\Python27\\lib\\site-packages',
'...\\WINDOWS\\system32\\python27.zip']"

Da der betreffende Ordner ja "site-packages" ist, würde ich sagen, dass der Pfad enthalten ist, oder?
Antworten