2010-11-28 6 views
1

Je suis un développeur web et j'ai un projet django sur lequel je dois travailler. Je cours mac OSX 10.6.5 sur un macbook pro. J'ai utilisé macports pour installer django et python 2.6.Faire fonctionner macports django et python

J'ai maintenant une sorte de problème, peut-être lié à mon PATH/PYTHONPATH qui m'empêche d'exécuter django.

En écho terminal de $ PATH donne:

echo $PATH 
/Library/Python/2.6/site-packages:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 

et echo $ PYTHONPATH ne donne rien.

port installé donne sudo:

sudo port installed 
The following ports are currently installed: 
autoconf @2.65_1 (active) 
automake @1.11.1_0 (active) 
bash-completion @1.1_8 
bash-completion @1.2_0 (active) 
bzip2 @1.0.5_3+darwin 
bzip2 @1.0.6_0 (active) 
db46 @4.6.21_6 (active) 
expat @2.0.1_0 
expat @2.0.1_1 (active) 
fontconfig @2.8.0_0+macosx (active) 
freetype @2.3.12_0+macosx (active) 
gdbm @1.8.3_2 (active) 
gettext @0.18_0 
gettext @0.18.1.1_2 (active) 
gperf @3.0.4_0 (active) 
help2man @1.38.2_0 (active) 
ImageMagick @6.6.2-0_0+q16 (active) 
jpeg @8a_0 (active) 
lcms @1.19_2 (active) 
libiconv @1.13.1_0 (active) 
libpng @1.2.43_0 (active) 
libtool @2.2.6b_1+darwin (active) 
libxml2 @2.7.7_0 (active) 
m4 @1.4.14_0 (active) 
ncurses @5.7_0+darwin_10 
ncurses @5.7_1 (active) 
ncursesw @5.7_0+darwin_10 
ncursesw @5.7_1 (active) 
openssl @1.0.0b_0 (active) 
p5-locale-gettext @1.05_2 (active) 
p7zip @9.04_0 (active) 
perl5 @5.8.9_0 (active) 
perl5.8 @5.8.9_3 (active) 
pkgconfig @0.25_0 (active) 
py26-distribute @0.6.14_0 (active) 
py26-django @1.2.3_0+bash_completion (active) 
python26 @2.6.6_0+no_tkinter (active) 
readline @6.1.002_0 (active) 
sqlite3 @3.7.3_0 (active) 
tiff @3.9.2_3+macosx (active) 
xorg-bigreqsproto @1.1.0_0 (active) 
xorg-inputproto @2.0_0 (active) 
xorg-kbproto @1.0.4_0 (active) 
xorg-libice @1.0.6_0 (active) 
xorg-libsm @1.1.1_0 (active) 
xorg-libX11 @1.3.3_0 (active) 
xorg-libXau @1.0.5_0 (active) 
xorg-libXdmcp @1.0.3_0 (active) 
xorg-libXext @1.1.1_0 (active) 
xorg-libXt @1.0.8_0 (active) 
xorg-util-macros @1.7.0_0 (active) 
xorg-xcmiscproto @1.2.0_0 (active) 
xorg-xextproto @7.1.1_0 (active) 
xorg-xf86bigfontproto @1.2.0_0 (active) 
xorg-xproto @7.0.16_0 (active) 
xorg-xtrans @1.2.5_0 (active) 
zlib @1.2.5_0 (active) 

et quand je tape python je reçois:

python 
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 

Je suis certain que ce soit la version incorrecte.

Lorsque je tente et tester si django est disponible pour python je reçois:

>>> import django 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
ImportError: No module named django 
>>> 

Quelqu'un pourrait-il me aider à comprendre ce qui se passe ici? J'ai juste besoin de lancer django pour que je puisse voir et travailler sur le projet django que mon collègue m'a envoyé.

Merci pour toute aide à l'avance!

Répondre

1

Est-ce vraiment l'interpréteur Python installé par macports? 2.6.1 sent comme la pomme m'a fourni un (2.6.1 est assez vieux).

essayer,

which python 

En aparté, je ne voudrais pas installer Django en utilisant MacPorts.

EDIT: Macports installé 2.6.6, le problème est le python fourni par Apple est plus tôt sur votre chemin.

python26 @2.6.6_0+no_tkinter (active) 

EDIT:

J'utilise python de homebrew, qui, par défaut va dans/usr/local/bin/python.

Pour l'utiliser, j'ai une ligne dans mon .bashrc, mais il pourrait aller à la fin de votre/etc/profile

export PATH=/usr/local/bin:/usr/local/sbin:$PATH 

Qu'est-ce qui fait est prepends mon chemin de système avec emplacement de mon homebrew installe (/ usr/local)

Dans votre cas, il devrait être où votre macshops python (le 2.6.6) peut être trouvé.

HTH

+0

qui python donne: qui python /usr/bin/python Que ferais-je faire pour remédier à ce problème? Créer un nouveau chemin? – phonicx

+0

J'ai enlevé la partie python du chemin, maintenant j'obtiens: echo $ PATH /opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin – phonicx

+0

J'utilise homebrew pas macports, mais mon "quel python" est/usr/local/bin/python. Où établissez-vous votre chemin? Je l'ai dans mon .bashrc: export PATH =/usr/local/bin:/usr/local/sbin: $ PATH: (mettra à jour ma réponse pour vous) – Rich

1

Les deux Python 2.6.1 et 2.6.6 devrait fonctionner correctement avec django. Mais si vous voulez utiliser 2.6.6, ajoutez simplement l'emplacement de cette variable à votre variable PATH maintenant que vous avez retiré l'ancien python de votre chemin.

Pour que Django fonctionne, essayez de placer l'emplacement de django sur votre PYTHONPATH. Sur un mac, si django est installé dans /Library/Django-1.2.1, ajoutez:
export PYTHONPATH=$PYTHONPATH:/Library/Django-1.2.1
à votre fichier ~/.bash_profile. (puis exécutez source ~/.bash_profile pour l'actualiser).

Si cela ne fonctionne pas, je réinstallerais django. Je n'ai jamais utilisé macports, mais l'installation de paquets python avec pip a toujours bien fonctionné pour moi. Supprimez vos anciens fichiers django et exécutez easy-install pip, puis pip -install django devrait faire l'affaire - cela va installer django dans votre répertoire de paquets de site, donc il sera sur votre chemin et prêt à partir.

1

J'ai eu le même problème. Il s'avère qu'après l'exécution

sudo port install py26-django 

Vous avez deux environnements Python différents.

Vous finissez python2.6 installé et symlinked de /opt/local/bin/python2.6, mais ce répertoire n'a pas "python", juste "python2.6". Ainsi, lorsque vous exécutez "python", vous continuez à utiliser l'installation python par défaut.

Pour résoudre le problème, faire

cd /opt/local/bin 
sudo ln -s python2.6 python 

Depuis/opt/local/bin est tout d'abord sur votre PATH, en cours d'exécution "python" serait l'environnement pick-up installé par MacPort.

3

D'abord, Macports écrit le fichier ~/.profile pour définir ses variables PATH. Si vous avez créé un fichier ~/.bash_profile alors ~/.profile sera ignoré. Vous devrez copier le contenu.

Pour voir la version python Macports a choisi l'utilisation:

port select --list python 

qui va vous montrer quelque chose comme ceci:

Available versions for python: 
    none 
    python25-apple 
    python26-apple 
    python27 (active) 
    python32 

Pour dire Macports d'utiliser une utilisation version spécifique:

port select --set python python27 

Cela devrait corriger votre version de python. Vous pouvez utiliser python easy_install pour installer Django maintenant ou utiliser la distribution Macports de Django.

+0

Je viens d'installer Django via MacPorts (OSX 10.10), et pourrait pas obtenir Python pour le trouver (erreur d'importation). Après avoir lancé 'port select --list python', j'ai vu que" none "était (active), donc j'ai utilisé la commande que vous avez fournie et maintenant je peux importer aucun problème. – AVProgrammer

Questions connexes