【发布时间】:2014-01-03 21:06:33
【问题描述】:
我正在处理一个奇怪的问题。我有一个具有这种结构的 Django 应用程序:
README.md
venv/
projectname/
manage.py
proj/
__init__.py
settings/
__init__.py
default.py
celery.py
local.py
urls.py
wsgi.py
app/
__init__.py
models.py
我已经创建了一个这样的虚拟环境:
virtualenv venv
然后我做:
cd projectname
source ../venv/bin/activate
python manage.py syncdb --no-input
这在我的开发 MacBook 上运行良好。我尝试相同的命令:
cd projectname
source ../venv/bin/activate
python manage.py syncdb --no-input
我得到这个错误:
File "/usr/local/my-project/venv/local/lib/python2.7/site-packages/django/conf/__init__.py", line 132, in __init__
% (self.SETTINGS_MODULE, e)
ImportError: Could not import settings 'proj.settings.local' (Is it on sys.path? Is there an import error in the settings file?): No module named local
(venv)ubuntu@app1:/usr/local/my-project/projectname$
我不知道如何解决这个问题。有什么建议吗?
所有 Django 命令都可以在我的 MacBook(syncdb、celery 等)上本地运行,但在 Ubuntu 上似乎存在一些问题。
【问题讨论】:
-
你是把原来的 virtualenv 从 mac 复制到 ubuntu 还是创建了一个新的?
-
我创建了一个新的。我刚刚发现在 Ubuntu 12.04 LTS 上还有 Python 2.7.3,在我的 Mac 上我得到了 2.7.6。但我没有使用任何新功能。我的代码很老,所以在 2.7.3 上应该没有问题。
-
有没有机会错过新环境中的一些库?按照错误消息的提示尝试
python settings/local.py -
您确认 local.py 没有导入不存在的库吗?
-
显然你在某个地方声明了你的设置,如果有任何东西为 django 导出 SETTINGS_MODULE,你检查过你的 .bashrc 配置文件吗?例如,在我的 django virtualenv 中,我有以下导出:
export DJANGO_SETTINGS_MODULE="mypath.myapp.dev"
标签: python django ubuntu virtualenv