让macports django和python一起工作

时间:2010-11-28 11:45:13

标签: python django macos

我是一名web开发人员,我有一个需要处理的django项目。

我在macbook pro上运行mac OSX 10.6.5。我使用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 个答案:

答案 0 :(得分:3)

首先,Macports编写文件〜/ .profile来设置其PATH变量。如果您创建了〜/ .bash_profile文件,那么〜/ .profile将被忽略。您必须复制内容。

要查看Macports选择使用的python版本:

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或使用Django的Macports发行版。

答案 1 :(得分:1)

这真的是由macports安装的Python解释器吗? 2.6.1 Apple给我提供的气味(2.6.1很老)。

试试,

which python

顺便说一句,我不会使用macports安装Django。

编辑:Macports安装了2.6.6,问题是苹果提供的python是你早期的路径。

python26 @2.6.6_0+no_tkinter (active)

编辑:

我使用自制的python,默认情况下是/ usr / local / bin / python。

要使用它,我的.bashrc中有一行,但它可能会在/ etc / profile

的末尾出现
export PATH=/usr/local/bin:/usr/local/sbin:$PATH

它的作用是将我的系统路径添加到我的自制软件安装位置(/ usr / local)

在你的情况下,它应该是你的macports python(2.6.6一个)可以找到的地方。

HTH

答案 2 :(得分:1)

Python 2.6.1和2.6.6都可以与django一起使用。但是如果你想使用2.6.6,只需将你的旧python从你的路径中删除就可以将它的位置添加到你的PATH变量中。

要让Django工作,请尝试将django的位置放在PYTHONPATH上。在Mac上,如果在/Library/Django-1.2.1中安装了django,请添加:
export PYTHONPATH=$PYTHONPATH:/Library/Django-1.2.1
到你的〜/ .bash_profile文件。 (然后运行source ~/.bash_profile刷新它。)

如果这不起作用,我会重新安装django。我从来没有使用过macports,但是用pip安装python包对我来说一直很好用。删除旧的django文件并运行easy-install pip,然后pip -install django就可以了 - 这将在您的site-packages目录中安装django,因此它将在您的路径上准备就绪。

答案 3 :(得分:1)

我遇到了同样的问题。结果,运行后

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安装的环境。