2

我想这是一个 PATH/PYTHONPATH 错误,但到目前为止我的尝试失败了,无法让 django 正常工作。

系统是 Ubuntu 10.04,64 位:

mx:~/webapps$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04 LTS"

Python版本:2.6.5:

@mx:~/webapps$ python -V
Python 2.6.5

当我运行 django-admin.py 时,会发生以下情况:

mx:~/webapps$ django-admin.py
Traceback (most recent call last):
  File "/usr/local/bin/django-admin.py", line 2, in <module>
    from django.core import management
ImportError: No module named django.core

当我在 python shell 中导入 django 时类似:

mx:~/webapps$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named django
>>> quit()

更多细节:

mx:~/webapps$ python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

/usr/lib/python2.6/dist-packages

在 python 外壳中:

Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print sys.path
['', '/usr/lib/python2.6/dist-packages/django', '/usr/local/lib/python2.6/dist-packages/django/bin', '/usr/local/lib/python2.6/dist-packages/django', '/home/petra/webapps', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/pymodules/python2.6']

django-admin.py 可以在这里找到:

mx:~/webapps$ locate django-admin.py
~/install/sources/Django-1.2.1/build/lib.linux-i686-2.6/django/bin/django-admin.py
~/install/sources/Django-1.2.1/build/scripts-2.6/django-admin.py
~/install/sources/Django-1.2.1/django/bin/django-admin.py
/usr/local/bin/django-admin.py
/usr/local/lib/python2.6/dist-packages/django/bin/django-admin.py
/usr/local/lib/python2.6/dist-packages/django/bin/django-admin.pyc

最后这无济于事:

export PYTHONPATH="/usr/lib/python2.6/dist-packages/django:$PYTHONPATH"

也不是这个:

export PYTHONPATH="/usr/local/lib/python2.6/dist-packages/django:$PYTHONPATH"

如何解决这个问题!?

提前谢谢大家!:)

4

2 回答 2

2

你的 python 路径似乎搞砸了。

如果要module在 Python 中导入,则模块的路径必须在sys.path. 例如,如果您想导入位于

/long/path/to/module

那么你一定有

/long/path/to

在中sys.path,而不是 /long/path/to/module

由于您的 django install 似乎已安装在 中/usr/local/lib/python2.6/dist-packages,因此以下内容应该可以解决您的问题:

export PYTHONPATH="/usr/local/lib/python2.6/dist-packages:$PYTHONPATH"

这并不能解释为什么你一开始就没有这条路sys.path,虽然......

于 2010-05-29T18:23:41.090 回答
0

在 CLI 中花费数小时后 :) 我终于找到了解决方案。django-admin.py 无法执行的原因是/usr/local/lib 目录的访问权限,实际上是缺少所有者的执行权限。

所以,一个:sudo chmod 711 /usr/local/lib永远解决 django-admin.py 执行问题:)

于 2010-05-30T09:42:11.320 回答