我在服务器上有 Django 1.2.1。我需要使用虚拟 Python 来安装 Django 1.4.1 和我想要的 PostgreSQL 适配器。我正在尝试在我的服务器上设置此软件。所以我跑
virtualenv --python=python2.6 env
. env/bin/activate
pip install -r requirements.txt
输出
:~/arkisto$ virtualenv --python=python2.6 env
Running virtualenv with interpreter /usr/bin/python2.6
New python executable in env/bin/python2.6
Also creating executable in env/bin/python
Installing distribute..................................................................................................................................................................................done.
:~/arkisto$ . env/bin/activate
(env):~/arkisto$ pip install -r requirements.txt
Requirement already satisfied (use --upgrade to upgrade): psycopg2 in /usr/lib/python2.6/dist-packages (from -r requirements.txt (line 2))
Downloading/unpacking django==1.4.1 (from -r requirements.txt (line 1))
Downloading Django-1.4.1.tar.gz (7.7Mb): 7.7Mb downloaded
Running setup.py egg_info for package django
Installing collected packages: django
Found existing installation: Django 1.2.3
Not uninstalling Django at /usr/lib/pymodules/python2.6, outside environment /home/users/sa/tentti/env
Running setup.py install for django
changing mode of build/scripts-2.6/django-admin.py from 644 to 755
changing mode of /home/users/sa/arkisto/env/bin/django-admin.py to 755
Successfully installed django
Cleaning up...
然后在服务器中查看 Django 的版本
(env)$ django-admin --version
1.2.3
您如何使用这些命令安装的软件?
在 virtualenv 中通过 pip 安装时,django 管理脚本通常安装在名称下
django-admin.py
(带有文件扩展名)。很可能系统范围的 django 安装了这个脚本而没有扩展,所以你回退到它。尝试
根据您的 virtualenv 版本,您可能需要在创建 venv 时添加 --no-site-packages 标志,如下所示:
这会告诉 virtualenv 不要让全局安装的包在你的 venv 中可用。
扩展至user214462答案
我运行 user214462 的答案
我明白了
这似乎有效。
对 user214462 答案的第二个扩展
我正在尝试结合 virtualenv 命令来安装 Django1.4.1
我不明白语法的地方。我将文件夹test/放在那里是因为在没有文件夹的情况下运行它后出现以下错误
我认为我应该启动 virtualenv,然后将该命令放在同一行中的环境中运行的内容。
上面的语法感觉不对,因为该命令
python
显然不是虚拟运行的,因此无法正常工作。你怎么能安装 Django1.4.1 而不在你的 venv 中提供全局安装的包?