2011-08-06 6 views
2

J'essaie d'obtenir mon environnement de travail python/numpy/de scipy sur OS X Lion.scipy sur os x lion

Je l'ai déjà réussi à compiler à partir de leurs versions les plus récentes de SourceCode numpy et scipy avec l'habituel

python setup.py build 
python setup.py install 

j'exécuter la version Python 2.7.2 téléchargé à partir python.org:

tobi-mbp:~ tobi$ python 
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 

Si i que numpy l'importation, il montre:

>>> import numpy 
>>> numpy.__version__ 
'1.5.1' 
>>> numpy.__file__ 
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/__init__.pyc' 
>>> 

le système instalation de numpy. Considérant que

>>> import scipy 
>>> scipy.__version__ 
'0.10.0.dev' 
>>> scipy.__file__ 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/__init__.pyc' 
>>> 

donne la version installée de scipy. Cela signifie que le scipy.test() échoue et se fait coincé.

J'ai essayé pip et easy_install aussi bien mais ne parviennent pas à compiler scipy et numpy les mêmes occours bahavior étranges. Idem pour les binaires précompilés fournis sur sourcefourge.

Comme cela semble être un problème avec PYTHONPATH:

>>> import sys, os, pprint 
>>> pprint.pprint(sys.path) 
['', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.6.19-py2.7.egg', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', 
'/Library/Python/2.7/site-packages/nose-1.1.2-py2.7.egg', 
'/Library/Python/2.7/site-packages/pip-1.0.2-py2.7.egg', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages', 
'/Library/Python/2.7/site-packages'] 
>>> pprint.pprint([p for p in os.environ.items() if p[0].startswith('PYTHON')]) 
[] 
>>> 

Et une liste du contenu du site-packages

tobi-mbp:site-packages tobi$ ls -l 
total 752 
-rw-rw-r-- 1 root admin  119 12 Jun 00:25 README 
drwxr-xr-x 10 root admin  340 6 Aug 19:47 distribute-0.6.19-py2.7.egg 
-rw-r--r-- 1 tobi admin  237 6 Aug 19:48 easy-install.pth 
drwxrwxr-x 48 tobi admin 1632 6 Aug 18:19 numpy 
drwxrwxr-x 6 tobi admin  204 20 Jul 20:44 numpy-1.6.1-py2.7.egg-info 
-rw-r--r-- 1 root admin 1670 6 Aug 18:19 numpy-2.0.0.dev_26aa3cf-py2.7.egg-info 
drwxr-xr-x 4 root admin  136 6 Aug 19:48 pip-1.0.2-py2.7.egg 
drwxr-xr-x 8 tobi admin  272 6 Aug 19:48 readline-6.2.0-py2.7.egg-info 
-rwxr-xr-x 1 tobi admin 357048 6 Aug 19:48 readline.so 
drwxrwxr-x 42 tobi admin 1428 6 Aug 18:21 scipy 
-rw-r--r-- 1 root admin 1768 6 Aug 18:21 scipy-0.10.0.dev-py2.7.egg-info 
drwxrwxr-x 6 tobi admin  204 27 Feb 14:00 scipy-0.9.0-py2.7.egg-info 
-rw-r--r-- 1 tobi admin  144 6 Aug 19:47 setuptools-0.6c11-py2.7.egg-info 
-rw-r--r-- 1 tobi admin  30 6 Aug 19:47 setuptools.pth 

tobi-mbp:site-packages tobi$ more easy-install.pth 
import sys; sys.__plen = len(sys.path) 
./distribute-0.6.19-py2.7.egg 
./pip-1.0.2-py2.7.egg 
import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new) 

tobi-mbp:site-packages tobi$ more setuptools.pth 
./distribute-0.6.19-py2.7.egg 

Je vois le dossier Extras système dans le chemin, maintenant la question est pourquoi et comment je peux m'en débarrasser.

Merci pour votre aide

acclamations Tobi

+0

Vous n'êtes pas dans l'arbre source de scipy lorsque vous lancez 'scripy.test()', non? – EdoDodo

+0

Non, je suis dans mon répertoire personnel quand je lance les tests. Je suppose que le 'scipy.test()' échoue parce qu'il utilise l'ancienne version (1.5.1) de numpy – tobi

Répondre

2

Il semble être un problème de chemin quelque part. Peut-être que vous définissez PYTHONPATH? Lorsque vous exécutez le python.org 2.7.2, le répertoire Extras de Python 2.7.1 fournie par Apple ne devrait pas être sur sys.path. Pour aider à comprendre ce qui se passe, lancez le Python 2.7.2 et examiner les points suivants:

>>> import sys, os, pprint 
>>> pprint.pprint(sys.path) 
>>> pprint.pprint([p for p in os.environ.items() if p[0].startswith('PYTHON')]) 

aussi le contenu du répertoire site-packages:

$ cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ 
$ ls -l 
$ more easy-install.pth 

et le contenu de tout autre. pth fichiers là.

Si on ne sait toujours pas ce qui se passe, modifiez votre réponse pour afficher les résultats de ce qui précède.

MISE À JOUR:

Merci pour fournir les informations supplémentaires demandées. Il confirme que sys.path ne comprend le répertoire Extras du système fournie par Apple Python 2.7. Il n'y a pas de raison évidente pour que cela se produise. Sans plus d'informations, je ne peux que spéculer. Aussi improbable que cela puisse paraître, ma meilleure estimation à ce stade est que vous avez accidentellement copié certains fichiers d'un Python à l'autre.Le Python fourni par Apple a un patch site.py pour ajouter le répertoire Extras:

$ cd /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 
$ ls -l site.py 
-rw-r--r-- 1 root wheel 19929 Jun 16 17:03 site.py 
$ grep Extras site.py 
      sitepackages.append(os.path.join(prefix, "Extras", "lib", "python")) 

Vous ne devriez pas voir que dans le python.org Python:

$ cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 
$ ls -l site.py 
-rw-rw-r-- 1 root admin 20288 Jun 11 15:25 site.py 
$ grep Extras site.py 
$ 

Vous pouvez également faire une récursive plus complète recherche de tous les répertoires sur sys.path pour les fichiers pth mais cela semble peu probable de trouver quoi que ce soit.

Vous semblez également avoir installé deux versions de numpy et scipy dans votre site-packages, l'une de la dernière version et l'autre version de pointe. Je ne sais pas si vous avez pris des mesures pour effacer les répertoires numpy et scipy entre les installations ou si cela peut causer des problèmes, mais il pourrait.

À ce stade, sans plus d'informations, je vous recommande de supprimer complètement la 2.7.2 installation et recommencer:

$ sudo rm -rf /Library/Frameworks/Python.framework/Versions/2.7 

Vous pouvez envisager d'utiliser une autre approche comme les numpy binaires/installateurs SciPy ou installer en utilisant MacPorts. Une meilleure source de conseils pourrait être trouvée sur l'un des project's mailing lists. Bonne chance!

+0

Merci pour la réponse Ned, j'ai édité le question avec les résultats du code ci-dessus. Comme le dossier Extras est dans le chemin, je dois trouver un moyen de sortir. – tobi