Python manage.py syncdb正在使用另一个项目&x27;虚拟环境中的s db
我有两个站点,在同一个虚拟环境中,在两个不同的apache虚拟主机中 当我运行Python manage.py syncdb正在使用另一个项目&x27;虚拟环境中的s db,python,django,apache,Python,Django,Apache,我有两个站点,在同一个虚拟环境中,在两个不同的apache虚拟主机中 当我运行python manage.py syncdb时,它会显示: Creating tables ... Installing custom SQL ... Installing indexes ... Installed 0 object(s) from 0 fixture(s) 当我运行python manage.py inspectdb>somefile.txt时,其他站点的详细信息将显示在somefile.txt
python manage.py syncdb
时,它会显示:
Creating tables ...
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)
当我运行python manage.py inspectdb>somefile.txt
时,其他站点的详细信息将显示在somefile.txt
中
因此,python manage.py
正在调用文件/var/www/venv/proj1/manage.py
,即使我在目录中:`/var/www/venv/proj2/`。原因是什么,或者如何诊断
manage.py:
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "proj1.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
下面是我如何检查$PYTHONPATH的:
# $PYTHONPATH
-bash: /var/www/virtualenv-2.7/proj1:/var/www/virtualenv-2.7/proj2:: No such file or directory
这是.bash\u档案
:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
PYTHONPATH=/var/www/virtualenv-2.7/proj2:$PYTHONPATH
PYTHONPATH=/var/www/virtualenv-2.7/proj1:$PYTHONPATH
export PYTHONPATH
export DJANGO_SETTINGS_MODULE="proj2.settings" #possibly the issue?
您的问题是您的
PYTHONPATH
在proj2
之前列出了proj1
。在这种情况下,python将首先查看manage.py
的proj1
,然后执行该操作,并跳过当前目录中的manage.py
,即使它存在
作为一个快速修复方法,将当前目录添加到PYTHONPATH
中,如下所示:
PYTHONPATH=/var/www/virtualenv-2.7/proj2
PYTHONPATH=/var/www/virtualenv-2.7/proj1:$PYTHONPATH
PYTHONPATH=.:$PYTHONPATH
export PYTHONPATH
这将首先检查您在当前目录中查找的脚本
另外,除非您心中有一个特定的目标,否则您可能会丢失特定于项目的路径,并始终从相关目录启动
manage.py
。能否显示此manage.py
中的内容?谢谢。@alecxe添加到上面顺便说一句,我记得当两个apache虚拟主机使用相同的python环境时,我遇到了很多奇怪的问题-大多数基于C的模块开始以非常疯狂的方式出现故障。PYTHONPATH
环境变量设置为什么?@AndreiAvram添加到上面