无管理员权限安装Django和Python Suds
我正在尝试设置我的项目环境,使用的技术有:
- Python 2.5.2
- Django 1.3
- Python Suds
我运行的服务器上已经安装了Python(2.5.2)和Django(1.1),但我想用更新版本的Django,而且我没有管理员权限来升级。那我该怎么安装呢?
我是否需要在一个单独的目录下安装Python、Django和Suds?我该如何把标准的Python路径替换成这个新路径呢?
谢谢!
3 个回答
在其他路径设置 Django 的完整指南
通过 pip 安装 Django
很多人使用 pip 这个包管理工具来安装软件(虽然我不太喜欢)。
要通过 pip 安装 Django,你可以这样做:
pip install django
这样安装的 Django 会放在一个普通用户无法访问的路径里。
所以你必须先添加这个安装路径。
pip install django --install-option="--prefix=$SOME_PLACE_WE_HAVE_ACCESS_TO" django
这个 $SOME_PLACE_WE_HAVE_ACCESS_TO
可以是 /home/user/
目录。
现在登录到 Python 中,进行导入:
import django
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named django
我们哪里做错了???
PYTHONPATH
只要你没有把 Django 安装在 PYTHONPATH 中,Python 就不知道从哪里导入这个模块!!! 你需要做这两步:
BASH:
echo $PYTHONPATH
PYTHON:
import sys
print sys.path
这里的 sys.path 显示的是 Python 中安装的包的位置。 而 $PYTHONPATH 是空的...
你需要做的就是把 Django 的 egg 文件路径添加到 PYTHONPATH 中。
比如在我的系统中是:
/usr/local/lib/python2.7/dist-packages/Django-1.9-py2.7.egg
要把它添加到 PYTHONPATH,执行这个:
BASH:
export PYTHONPATH={{EGG PATH}}
这里的 {{EGG PATH}} 是你的 Django egg 的位置。
那 django-admin 呢?
你需要从 Django 安装的地方运行它,通常是在一个叫 bin
的目录里。
你可以把这个 bin 的路径(可能是 ~/bin 或者你安装的任何地方/bin)添加到 $PATH 中...
就像添加 PYTHONPATH 一样:
export PATH=$PATH:~/bin
注意 >> : 在 $PATH 后面加上是很重要的!!!想知道为什么可以执行:echo $PATH
注意 >> ~/bin 必须是 Django 的 bin 目录,所以要注意这一点。
通过源代码安装 Django
哦,我的天,那是我最喜欢的方式。 和上面的方法没有什么不同,只是用 setup.py 代替 pip...
为此你必须先安装 setuptools...(我觉得 pip 会自动安装,如果 pip 报错说没有 setuptools,你也需要按照上面的方法为 setuptools 安装一遍。)
安装完 setuptools 后,你需要这样做:
./setup.py install --prefix=$PATH_YOU_DESIRE
剩下的步骤是一样的...
参考资料
1 : 通过 pip 在其他位置安装包。
2 : 如何将路径添加到 $PATH。
我建议你在一个新的文件夹里安装Django和Suds!这样你就可以让这个文件夹里的所有人都能访问它!如果你在用Apache服务器的话,只需要把这个新文件夹添加到PYTHONPATH里就可以了!
顺便说一下,我自己从来没有试过这个,但应该是可以的!
你也可以在谷歌上搜索一下PYTHONPATH,这里有一个可能对你有帮助的链接: http://www.stereoplex.com/blog/understanding-imports-and-pythonpath
祝好运!
你可以使用虚拟环境,我之前也用过它来玩另一个(无关的)Python框架,叫做buildbot。