Как заставить macports django и python работать вместе - PullRequest
1 голос
/ 28 ноября 2010

Я веб-разработчик, и у меня есть проект django, над которым мне нужно работать.

Я использую Mac OSX 10.6.5 на MacBook Pro. Я использовал macports для установки django и python 2.6.

У меня теперь есть какая-то проблема, возможно связанная с моей PATH / PYTHONPATH, которая мешает мне запустить django.

В терминале echo $ PATH дает:

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

и echo $ PYTHONPATH ничего не дает.

установленный порт 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)

и когда я набираю python, я получаю:

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.
>>> 

Я почти уверен, что это неверная версия.

Когда я пытаюсь проверить, доступен ли django для python, я получаю:

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

Может ли кто-нибудь помочь мне понять, что здесь происходит? Мне нужно только запустить django, чтобы я мог просматривать и работать над проектом django, который прислал мне мой коллега.

Заранее спасибо за любую помощь!

Ответы [ 4 ]

3 голосов
/ 11 октября 2011

Сначала Macports записывает файл ~ / .profile, чтобы установить его переменные PATH. Если вы создали файл ~ / .bash_profile, то ~ / .profile будет игнорироваться . Вам придется скопировать содержимое.

Чтобы увидеть, какую версию Python Macports выбрал, используйте:

port select --list python

, который покажет вам что-то вроде этого:

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

Чтобы указать Macports использовать определенную версию, используйте:

port select --set python python27

Это должно сделать вашу версию Python правильной. Вы можете использовать python easy_install для установки Django прямо сейчас или использовать дистрибутив Macports Django.

1 голос
/ 28 ноября 2010

Оба Python 2.6.1 и 2.6.6 должны нормально работать с django. Но если вы хотите использовать 2.6.6, просто добавьте местоположение этой переменной в переменную PATH, теперь, когда вы удалили старый питон со своего пути.

Чтобы заставить Django работать, попробуйте указать местоположение Django на своей PYTHONPATH. На Mac, если django установлен в /Library/Django-1.2.1, добавьте:
export PYTHONPATH=$PYTHONPATH:/Library/Django-1.2.1
в ваш файл ~ / .bash_profile. (затем запустите source ~/.bash_profile, чтобы обновить его).

Если это не сработает, я бы переустановил django. Я никогда не использовал macports, но установка пакетов python с pip всегда работала хорошо для меня. Удалите ваши старые файлы django и запустите easy-install pip, а затем pip -install django сделает свое дело - он установит django в каталог вашего сайта-пакетов, поэтому он будет на вашем пути и готов к работе.

1 голос
/ 09 июня 2011

У меня была такая же проблема.Оказывается, после запуска

sudo port install py26-django

У вас есть две разные среды Python.

В итоге вы установили python2.6 и получили символическую ссылку из /opt/local/bin/python2.6, но этокаталог не имеет "python", просто "python2.6".Поэтому, когда вы запускаете «python», вы по-прежнему выбираете установку Python по умолчанию.

Чтобы исправить проблему, выполните

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

, поскольку / opt / local / bin является первым в вашем PATHзапуск "python" подхватит среду, установленную macport.

1 голос
/ 28 ноября 2010

Это действительно интерпретатор Python, установленный macports?2.6.1 пахнет так, как Apple мне его предоставил (2.6.1 довольно старый).

try,

which python

В целом, я бы не стал устанавливать Django с помощью macports.

РЕДАКТИРОВАТЬ: Macports установлен 2.6.6, проблема в том, что яблоко при условии, что Python находится на вашем пути раньше.

python26 @2.6.6_0+no_tkinter (active)

РЕДАКТИРОВАТЬ:

Я использую Python из homebrew,который по умолчанию идет в /usr/local/bin/python.

Чтобы использовать это, у меня есть строка в моем .bashrc, но она может идти в конце вашего / etc / profile

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

То, что это делает, предопределяет мой системный путь с местоположением моих доморощенных установок (/ usr / local)

В вашем случае это должно быть именно там, где ваш Python Macports (2.6.6) можетбыть найденным.

HTH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...