2010-11-28 42 views
1

我是webdeveloper,我有我需要工作一个Django项目。获取MacPorts的Django和蟒蛇一起工作

我在MacBook Pro上运行Mac OSX 10.6.5。我用macports来安装Django和Python 2.6。

我现在有某种问题,可能与我的PATH/PYTHONPATH阻止我从运行Django。

在终端回声$ 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 

和回声$ 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是可用的蟒蛇,我得到:

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

谁能帮我弄清楚是怎么回事?我只需要让django运行,以便我可以查看和处理我的同事发给我的django项目。

感谢您提前提供任何帮助!

回答

1

这真的是由macports安装的Python解释器吗? 2.6.1闻起来像苹果向我提供了一个(2.6.1相当陈旧)。

尝试,

which python 

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

编辑:MacPorts的安装2.6.6,问题是苹果提供的蟒蛇是较早的路径中。

python26 @2.6.6_0+no_tkinter (active) 

编辑:

我使用Python从自制软件,它默认在/ usr/local/bin目录/蟒蛇去。

要利用这一点,我在我的.bashrc一条线,但它可以在你的/ etc/profile文件的末尾去

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

什么,做是预先考虑我的系统路径和我自制的位置安装目录(/ usr /本地)

在你的情况下,它应该是在您的MacPorts巨蟒(2.6.6的一个)都可以找到。

HTH

+0

这蟒蛇 给出: 这蟒蛇 在/ usr/bin中/ Python的 我会怎么做来纠正这个问题?创建一个新的路径? – phonicx 2010-11-28 14:11:14

+0

我删除了路径的python部分,现在我得到:echo $ PATH /opt/local/bin:/ opt/local/sbin:/ opt/local/bin:/ opt/local/sbin:/ opt/local /斌:/选择/ local/sbin中中:/ opt/local/bin目录中:/ opt/local/sbin中:在/ usr/bin中:/ bin中:/ usr/sbin目录:/ sbin目录:在/ usr/local/bin目录:在/ usr/X11/bin – phonicx 2010-11-28 14:12:59

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应该诀窍 - 这将在您的站点包目录中安装django,因此它将在您的路径上并准备就绪。

1

我有同样的问题。原来,运行后

sudo port install py26-django 

你有两个不同的python环境。

您最终从/opt/local/bin/python2.6安装并链接了python2.6,但该目录没有“python”,只是“python2.6”。所以当你运行“python”时,你仍然会选择默认的python安装。

要解决该问题,请

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

由于的/ opt/local/bin目录是第一次在你的路径,运行“蟒蛇”将回升由macport的安装环境。

3

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