2016-04-01 6 views
1

Ich habe etwas Code, den ich geschrieben und auf einen neuen Computer importiert habe, habe versucht, easy_install auf Astropysics und Networkx, aber es scheint, dass meine vorherige (Arbeits -) Code Probleme mit der easy_install Version von Astropysik. Ich habe das vorher nicht gesehen, also dachte ich, dass jemand hier eine Idee haben könnte. Mein entsprechender Code ist:Easy Install Astropysics gibt Fehler beim Transformieren von Koordinaten,

import os, sys 
import numpy as np 
import matplotlib.pyplot as plt 
import asciitable 
from scipy import stats 
import astropysics 
import astropysics.obstools 
import astropysics.coords 
import math 
import pylab as P 
import random 
from random import randint 
from pylab import * 
from astropysics.coords import ICRSCoordinates,GalacticCoordinates 
from scipy.optimize import curve_fit 

f=open(sys.argv[1]) 
y= asciitable.read(f,Reader=asciitable.CommentedHeader,delimiter=' ') 
f.close() 

vhc = y['Vhelavg'] 
verr = y['Verravg'] 
Radeg=y['Radeg'] 
Decdeg=y['Decdeg'] 
Rcoeff=y['Rcoeffavg'] 
logg=y['loggavg'] 

vhcgood= (vhc != -99.9) & (vhc >= -400) & (vhc <= 400) & (logg<=2.3) 
vhcg=vhc[vhcgood] 

l=[] 
b=[] 
Radg=Radeg[vhcgood] 
Decdg=Decdeg[vhcgood] 
for i in xrange(len(Radg)): 
gcoords=ICRSCoordinates(Radg[i],Decdg[i]).convert(GalacticCoordinates) 
l.append(gcoords.l.radians) 
b.append(gcoords.b.radians) 

Der Fehler ist:

Traceback (most recent call last): 
File "gauss01_15.py", line 46, in <module> 
gcoords=ICRSCoordinates(Radg[i],Decdg[i]).convert(GalacticCoordinates) 
File "/Library/Python/2.7/site-packages/Astropysics-1.0-py2.7.egg/astropysics/coords/coordsys.py", line 1895, in convert 
res = EpochalLatLongCoordinates.convert(self,tosys,optimize) 
File "/Library/Python/2.7/site-packages/Astropysics-1.0-py2.7.egg/astropysics/coords/coordsys.py", line 1781, in convert 
res = LatLongCoordinates.convert(self,tosys,optimize) 
File "/Library/Python/2.7/site-packages/Astropysics-1.0-py2.7.egg/astropysics/coords/coordsys.py", line 1728, in convert 
return CoordinateSystem.convert(self,tosys) 
File "/Library/Python/2.7/site-packages/Astropysics-1.0-py2.7.egg/astropysics/coords/coordsys.py", line 1098, in convert 
convpath = CoordinateSystem.getTransformPath(self.__class__,tosys) 
File "/Library/Python/2.7/site-packages/Astropysics-1.0-py2.7.egg/astropysics/coords/coordsys.py", line 1038, in getTransformPath 
path = nx.shortest_path(g,fromsys,tosys,weighted=True) 
TypeError: shortest_path() got an unexpected keyword argument 'weighted' 

Ich habe das nie bekommt vor und hatte nie irgendwelche Probleme mit dem einfachen Python in astropysics Koordinatentransformation. Irgendwelche Ideen werden geschätzt.

+0

Welche Version von 'networkx' haben Sie installiert? – Evert

+0

Denken Sie auch daran, dass ["Astropysik ist jetzt nur im" Erhaltungsmodus "". "] (Https://github.com/eteq/astropysys#tractrysics); Vielleicht möchten Sie Ihr Skript so ändern, dass es stattdessen astropy verwendet (kein Spaß, aber es sieht so aus, als wäre es für den obigen Code einfach. Sie könnten dann auch 'asciitable.read' durch' astropy.table.Table.read (.. .) '. – Evert

+0

Kurzversion: Verwenden Sie pip, verwenden Sie nicht easy_install. – Iguananaut

Antwort

0

Sie müssen wahrscheinlich Ihre astropysics Version aktualisieren. Es gab eine Änderung in der networkx (nx) Abhängigkeit von astropysics, die in der neueren Version von astropysics aufgegriffen wurde. (Das Schlüsselwortargument weighted wurde in weight geändert, und anscheinend haben Sie inkompatible Versionen von astropysics und networkx, um mit dieser Änderung umzugehen.) Das entsprechende Update wird in these lines in astropysics angezeigt.

Sie möchten wahrscheinlich auch das networkx Paket aktualisieren, wenn das nicht automatisch für Sie geschieht.

easy_install --upgrade astropysics 
easy_install --upgrade networkx 

hoffentlich tut es für Sie.

+0

Das ist sehr verwirrend zu schreiben," Astropysics ". Python-Spaß Name sind nicht immer bequem. – Evert

+0

easy_install ist alles andere als veraltet. Das sollte sagen "pip install --upgrade". Ich denke, die Verwendung von easy_install ist zumindest ein Teil des OP-Problems, da es alte Pakete nicht vor der Installation neuer Pakete deinstalliert und zu Inkonsistenzen in Abhängigkeiten führen kann. – Iguananaut