2012-12-08 37 views
7

我最近安裝了Django-1.5b1。 我的系統配置:Django 1.5b1:執行django-admin.py會導致「No module named settings」錯誤

  • OSX 10.8
  • 的Python 2.7.1
  • VIRTUALENV 1.7.2

當我打電話django-admin.py命令我碰到下面的錯誤

(devel)ninja Django-1.5b1: django-admin.py 
Usage: django-admin.py subcommand [options] [args] 

Options: 
    -v VERBOSITY, --verbosity=VERBOSITY 
         Verbosity level; 0=minimal output, 1=normal output, 
         2=verbose output, 3=very verbose output 
    --settings=SETTINGS The Python path to a settings module, e.g. 
         "myproject.settings.main". If this isn't provided, the 
         DJANGO_SETTINGS_MODULE environment variable will be 
         used. 
    --pythonpath=PYTHONPATH 
         A directory to add to the Python path, e.g. 
         "/home/djangoprojects/myproject". 
    --traceback   Print traceback on exception 
    --version    show program's version number and exit 
    -h, --help   show this help message and exit 
Traceback (most recent call last): 
    File "/Users/sultan/.virtualenvs/devel/bin/django-admin.py", line 5, in <module> 
    management.execute_from_command_line() 
    File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 452, in execute_from_command_line 
    utility.execute() 
    File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 375, in execute 
    sys.stdout.write(self.main_help_text() + '\n') 
    File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 241, in main_help_text 
    for name, app in six.iteritems(get_commands()): 
    File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 108, in get_commands 
    apps = settings.INSTALLED_APPS 
    File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/conf/__init__.py", line 52, in __getattr__ 
    self._setup(name) 
    File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/conf/__init__.py", line 47, in _setup 
    self._wrapped = Settings(settings_module) 
    File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/conf/__init__.py", line 132, in __init__ 
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e)) 
ImportError: Could not import settings 'settings' (Is it on sys.path?): No module named settings 

有沒有人有同樣的錯誤?任何人都可以提供建議或幫助嗎?

感謝,

蘇丹

+0

我試圖安裝Django 1.4.2和1.3.4的Django並且一切都正常工作 – sultan

回答

23

我在開始一個新項目時遇到同樣的問題。 我通過在命令提示符下給這個命令解決了這個問題:

export DJANGO_SETTINGS_MODULE= 
這樣我取消設置這是指向「 settings」文件(使用 env | grep DJANGO_SETTINGS_MODULE發現)可變

我開始使用的virtualenv之前設置

修改變量後django-admin.py腳本就像魅力一樣工作!

+0

它對我也有效 – sultan

+0

這不是最好的解決方案,你應該包含PYTHONPATH,就像@ceolwulf回答建議:http:// stackoverflow.com/a/14995603/778261 – neosergio

+0

謝謝@neosergio。你能否詳細說明爲什麼它應該是最好的解決方案?蘇丹在DJANGO_SETTINGS_MODULE中有一個錯誤的價值,我的建議是刪除該值以便使用virtualenv的價值。 – furins

-1

你確定你已經開始從virtualenv中Django的安裝目錄Django的管理員?或許路徑/到/的virtualenv /斌/ django-admin.py

+0

是的,我是,django-admin.py **顯示的命令** **/Users/sultan/.virtualenvs/devel/bin/django-admin.py ** – sultan

+1

是的抱歉,剛剛看到那。他的另一個原因是django不在python路徑上。我不知道女巫python是啓動主系統還是虛擬env python。但路徑有問題...... – krasi

0

也許你的問題與此有關: Wrong python path in script header

如果你想要做的任何東西,除了你VENV內創建一個新的Django項目,你應該請致電python manage.py(當然,whereis python應返回您的venv可執行文件)

0

不要從直接路徑運行腳本到django庫;從任何其他路徑運行它。它似乎你cd到Django的安裝目錄(或你下載和擴展它的地方),然後從那裏運行命令。

那麼試試這個:

(devel)ninja Django-1.5b1: cd 
(devel)ninja: django-admin.py startproject foo 
+0

同樣的事情發生了,它不起作用 – sultan

5

我有同樣的問題,因爲你,我還沒有從前面加上我的項目文件夾,這樣的PYTHONPATH拿出一個很好的修復旁白:

export PYTHONPATH="/absolute/path/to/django/project/folder:$PYTHONPATH" 

在我的<project>位於/absolute/path/to/django/project/folder/<project>。我將export命令添加到我的env/bin/activate腳本的末尾,因此每次初始化virtualenv時都會發生這種情況。

我們兩種情況之間唯一的區別是我使用多個設置文件而不是單個settings.py模塊。

您也可以撥打django-admin.py從包含Django項目,像這樣的文件夾:

python ~/.virtualenvs/devel/bin/django-admin.py <command> 

使其能夠識別當前的工作目錄路徑的一部分。

希望是有道理的。這是一種笨拙的解釋,這很難找到答案。

-1

,方便的解決方案,你可以嘗試

蟒蛇。\腳本\ django-admin.py startproject命令項目名稱

後運行