Es ist nicht sklearn, aber es ist vorhanden und up-to-date in /usr/local/lib/python2.7/dist-packages

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
AntoineP
User
Beiträge: 23
Registriert: Donnerstag 6. Juli 2017, 10:57

Auf meinem festen Server versuche ich, ein Python-Skript zu verwenden.
Terminal sagt mir es ist nicht sklearn, aber es ist vorhanden und up-to-date in /usr/local/lib/python2.7/dist-packages

Code: Alles auswählen

:~/Eclipse-Stats$ python Main.py 
2017-07-24 14:01:55.852751
Traceback (most recent call last):
  File "Main.py", line 2, in <module>
    import kmeans
  File "/home/ubuntu/Eclipse-Stats/kmeans.py", line 3, in <module>
    import sklearn
ImportError: No module named sklearn
:~/Eclipse-Stats$ pip install -U scikit-learn
Requirement already up-to-date: scikit-learn in /usr/local/lib/python2.7/dist-packages
Vielleicht denkt das Terminal, dass es nicht auf dem Server ist, aber es ist auf meinem Laptop?
BlackJack

@AntoineP: Was kommt denn bei ``python --version`` als Ergebnis?
AntoineP
User
Beiträge: 23
Registriert: Donnerstag 6. Juli 2017, 10:57

Es kommt :

Code: Alles auswählen

Python 2.7.13
AntoineP
User
Beiträge: 23
Registriert: Donnerstag 6. Juli 2017, 10:57

Die Problem ist die Python version. Wan ich mache :

Code: Alles auswählen

~/Eclipse-Stats$ python3 Main.py 
  File "Main.py", line 113
    print "list of groups you can recommend : "
                                              ^
SyntaxError: Missing parentheses in call to 'print'
Also wie kann ich Sklearn und Pip-Version herabstufen, wenn es notwendig ist?
BlackJack

@AntoineP: Wieso ist die Python-Version das Problem? ``python`` ist Python 2.7, `Main.py` ist Python 2, und `pip` sagt `scikit-learn` ist in ``/usr/local/lib/python2.7/dist-packages`` vorhanden, das passt doch also alles.

Du könntest noch versuchen ob ``python -m pip install -U scikit-learn`` etwas bringt. Also `pip` explizit mit dem Python ausführen das als ``python`` im Pfad liegt. Ansonsten könnte eventuell noch irgend etwas mit ``virtualenv`` oder etwas ähnlichem sein, aber ich wüsste nicht was.
AntoineP
User
Beiträge: 23
Registriert: Donnerstag 6. Juli 2017, 10:57

Ja, vielleicht sollte ich mich nicht mit der Python-Version verwirren. Doch ...

Code: Alles auswählen

:~/Eclipse-Stats$ sudo python -m pip install -U scikit-learn
The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/ubuntu/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Requirement already up-to-date: scikit-learn in /usr/local/lib/python2.7/dist-packages
vielleicht ist das virtualenv die beste Idee ...
AntoineP
User
Beiträge: 23
Registriert: Donnerstag 6. Juli 2017, 10:57

Es scheint, dass mir einige Bibliotheken fehlten : NumPy und SciPy
Ich fand und folgte der hier vorgesehenen Unterweisung : http://scikit-learn.org/stable/develope ... html#linux
Doch, ich hebe eine Proble mit ein libatlas3gf package :

[codebox=bash file=Unbenannt.bsh]sudo update-alternatives --set liblapack.so.3 \
> /usr/lib/atlas-base/atlas/liblapack.so.3
update-alternatives: error: alternative /usr/lib/atlas-base/atlas/liblapack.so.3 for liblapack.so.3 not registered; not setting[/code]

Und :

[codebox=bash file=Unbenannt.bsh] sudo update-alternatives --set libblas.so.3 \
> /usr/lib/atlas-base/atlas/libblas.so.3
update-alternatives: error: alternative /usr/lib/atlas-base/atlas/libblas.so.3 for libblas.so.3 not registered; not setting
[/code]
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@AntoineP : Diese manuellen Installationen setzen stets voraus, dass Du weißt, wie Python auf einem System installiert wird. Sonst kommst Du schnell durcheinander, insbesondere wenn mehrere Versionen nebeneinander existieren, was sehr oft der Normalfall ist. Hier solltest Du auf jeden Fall über den Einsatz Virtueller Environments nachdenken. Am einfachsten ist dies im wissenschaftsnahen Bereich durch die Nutzung von Anaconda/Miniconda. Mit dem dann vorhandenen Paketmanager conda ist es sehr einfach solche Environments anzulegen und beispielsweise scikit-learn inklusive aller Abhängigkeiten mit einem Befehl zu installieren — sowohl für Python 2 als auch für Python 3.
AntoineP
User
Beiträge: 23
Registriert: Donnerstag 6. Juli 2017, 10:57

Ich habe das virtualenv vorbereitet, was muss ich jetzt tun?

Code: Alles auswählen

(venv) ubuntu@ip-172-31-41-89:~/Eclipse-Stats$ 
Hier ist ein Link zum Stackoverflow, wo ich zeige, was ich versucht habe : https://stackoverflow.com/questions/452 ... ist-packag
AntoineP
User
Beiträge: 23
Registriert: Donnerstag 6. Juli 2017, 10:57

Ich habe die virtualenv-Option erfolglos ausprobiert

Ich denke das ist ein PATH Problem. Tatsächlich, hier ist die PATH mit die virtualenv :

[codebox=bash file=Unbenannt.bsh]
(venv) hohoho@ihéhéhé:~/Eclipse-Stats$ python
Python 2.7.13 (default, Jul 24 2017, 09:52:34)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print('\n'.join(sys.path))

/usr/local/lib/python27.zip
/usr/local/lib/python2.7
/usr/local/lib/python2.7/plat-linux2
/usr/local/lib/python2.7/lib-tk
/usr/local/lib/python2.7/lib-old[/code]

ohne die virtualenv :


[codebox=bash file=Unbenannt.bsh]hohoho@ip-héhéhé:~/Eclipse-Stats$ python
Python 2.7.13 (default, Jul 24 2017, 09:52:34)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print('\n'.join(sys.path))

/usr/local/lib/python27.zip
/usr/local/lib/python2.7
/usr/local/lib/python2.7/plat-linux2
/usr/local/lib/python2.7/lib-tk
/usr/local/lib/python2.7/lib-old
/usr/local/lib/python2.7/lib-dynload
/home/ubuntu/.local/lib/python2.7/site-packages
/usr/local/lib/python2.7/site-packages[/code]

Und hier ist das Verzeichnis, in dem Sie pip scikit installiert :

[codebox=bash file=Unbenannt.bsh]$ pip show scikit-learn
Name: scikit-learn
Version: 0.18.2
Summary: A set of python modules for machine learning and data mining
Home-page: http://scikit-learn.org
Author: Andreas Mueller
Author-email: amueller@ais.uni-bonn.de
License: new BSD
Location: /usr/local/lib/python2.7/dist-packages
Requires:[/code]

Also das Modul wird auf /usr/local/lib/python2.7/dist-packages installiert (die wir von Ort wissen:, pip zeigen Scikit-Learn verwenden), um eine Route, die nicht ist, einschließlich der Dolmetscher aussieht.
Antworten