Django安装在dist-packages中

Siv*_*nBH 3 python django pip yum

我正在开发Amazon Linux AMI(版本2013.09).除了其他方面,我的目标是让Django运行起来.所以这就是我的工作:

  1. 使用yum安装pip(它在Python2.7/dist-packages中安装pip 7.0.3)
  2. 使用pip安装virtualenv
  3. 创建virtualenv(使用--no-site-packages)
  4. 在virtualenv中使用pip安装Django(这将在virtenv的Python目录中安装Django,在dist-packages中)

这似乎很好,直到我尝试使用manage.py.以下行:

python manage.py collectstatic --noinput -c -l > /dev/null
Run Code Online (Sandbox Code Playgroud)

调用以下错误:

OSError: [Errno 2] No such file or directory: '...my-env/lib/python2.7/site-packages/django/contrib/admin/static'
Run Code Online (Sandbox Code Playgroud)

这是事实,因为整个Django基础设施都在dist-packages中,而不是站点包.修复此依赖关系的正确方法是什么?

谢谢!

更新28.06.15 Django尝试访问site-packages的原因是其settings.py文件中的'STATIC_ROOT'定义.事情是,我几年前使用相同的设置以完全相同的方式安装了Django,并且它工作得很好.那么改变了什么?为什么pip突然转向dist-packages?

Bri*_*gle 6

有时会PYTHON_INSTALL_LAYOUT="amzn"被设置在一个shell中,然后烦人的东西进入dist-packages.

要禁用这种烦恼, unset PYTHON_INSTALL_LAYOUT