2016-10-14 1 views
-1

Windows7oct2py à Anaconda/Spyder ne reconnaît pas l'octave

Anaconda/python ver 3.4

Octave ver 4.0.3

OCTAVE_EXECUTABLE = C: \ Users \ Heather \ Octave-4.0.3 \ bin

Salut à tous,

Je travaille quelques jours à essayer d'obtenir oct2py travailler à l'aide Anaconda Spyder. Je me demandais si quelqu'un pourrait me dire la bonne façon de le faire fonctionner dans Spyder sur une machine Windows? Configuration de base peut-être ou peut-être que j'utilise les mauvais paquets?

Jusqu'à présent, je l'ai installé le paquet oct2py par le Cloud Anaconda en utilisant:

Conda installer -c Conda-forge oct2py = 3.5.9

Dans toute la documentation pour oct2py elle a mentionné avoir besoin de Octave téléchargé pour que oct2py fonctionne. Ainsi, à partir de cette page, pypi.python.org/pypi/oct2py, il a mentionné avoir obtenu Octave de sourceforge à

https://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/. J'ai téléchargé l'Octave 3.6.4 à partir de là et un ami m'a aidé à obtenir l'OCTAVE_EXECUTABLE dans mes variables d'environnement pointant vers celui-ci. À ce moment-là, j'étais capable de taper «octave» dans une ligne de commande et cela faisait apparaître une instance d'octave, mais Spyder ne reconnaîtrait jamais que j'avais une octave installée.

ergo:

d'octave import oct2py

Erreur: ne peut pas importer le nom octave

A ce stade, je me suis rendu la sourceforge Octave a dit qu'il était un paquet supplémentaire, donc je désinstallé l'Octave 3.6. 4 et installé Octave 4.0.3 de http://www.gnu.org/software/octave/ pour Windows. Maintenant, Octave s'ouvre bien quand je clique sur l'application mais la ligne de commande ne reconnaît pas le terme «octave» qui me semble être un pas en arrière. J'ai regardé à nouveau mes variables env et le nouveau chemin pour Octave était présent dans les variables système et j'ai mis à jour le OCTAVE_EXECUTABLE pour pointer vers la nouvelle version d'Octave (sans espaces blancs dans le répertoire). Mais mon ordinateur, même après l'arrêt complet et redémarre ne reconnaît pas 'octave' dans la ligne de commande et Spyder ne voit toujours pas que j'ai octave lorsque j'essaye d'exécuter oct2py.Oct2Py(). Donc, après tout cela, je me demandais si quelqu'un avait déjà utilisé oct2py pour travailler à Anaconda, mais surtout en utilisant Spyder? Comment? J'essaie d'ouvrir mon script python et d'utiliser un fichier .m pour exécuter une fonction et générer une matrice qui sera utilisée plus loin dans le script pour le calcul. Cependant, si je n'arrive même pas à reconnaître l'octave, je ne sais pas comment je vais finir.

Exemple de code:

from oct2py import Oct2Py 
filename = 'filename' 
oc = Oct2Py() 
eph_matrix = oc.read_eph(filename) 
print(eph_matrix) #nx25 matrix 

Je suis plein d'espoir si je peux obtenir python à reconnaître Octave que je peux franchir la ligne d'importation.

Toute aide serait très appréciée.

+0

Pourquoi cette question a-t-elle été dépréciée? – shahensha

Répondre

1

Les OCTAVE_EXECUTABLE ou OCTAVE variables d'environnement doivent pointer directement vers l'exécutable et non le dossier contenant l'exécutable. Ainsi, vous aurez probablement envie de le mettre à

OCTAVE_EXECUTABLE = C:\Users\Heather\Octave-4.0.3\bin\octave-cli.exe 

Une autre option est de fournir l'exécutable comme la première entrée à Oct2Py.

from oct2py import Oct2Py 
octave = Oct2Py('C:\Users\Heather\Octave-4.0.3\bin\octave-cli.exe') 

Aussi, si vous voulez être en mesure de l'exécuter à partir de l'invite de commande Windows, vous voulez ajouter le dossier contenant les fichiers exécutables ('C:\Users\Heather\Octave-4.0.3\bin') à la variable d'environnement PATH.

+0

J'ai ajouté la partie exécutable à OCTAVE_EXECUTABLE et cela n'a pas vraiment résolu mon problème. Mais quand j'ai ajouté la partie – Telesto

+0

(Désolé pour les deux commentaires) Quand j'ai ajouté l'entrée à Oct2py, avec un r ajouté pour l'entrée brute à l'avant, cela a très bien fonctionné. depuis oct2py import Oct2Py octave = Oct2py (r'C: \ Utilisateurs \ Heather \ Octave-4.0.3 \ bin \ octave-cli.exe ') – Telesto