当前位置: 首页 > 面试题库 >

Django Shell没有模块命名设置

公良飞尘
2023-03-14
问题内容

我已通过将Django部署到Django
mod_wsgi。从Apache托管时,Django运行良好。但是,我试图通过进行一些维护manage.py,但是当我尝试运行它时,出现错误消息:

错误:无法导入设置“ myproject.settings”(是否在sys.path上):没有名为设置的模块

user@localhost:~$ cd /usr/local/myproject
user@localhost:/usr/local/myproject$ ls
drwxr-xr-x 2 apache apache   4096 2011-09-07 19:38 apache
-rw-r--r-- 1 apache apache      0 2011-05-25 14:52 __init__.py
-rw-r--r-- 1 apache apache    813 2011-09-09 16:56 manage.py
drwxr-xr-x 6 apache apache   4096 2011-09-09 16:43 myapp
-rw-r--r-- 1 apache apache   4992 2011-09-07 19:31 settings.py
drwxr-xr-x 4 apache apache   4096 2011-09-08 20:32 templates
-rw-r--r-- 1 apache apache   1210 2011-09-08 14:49 urls.py

Django似乎忽略了DJANGO_SETTINGS_MODULE环境变量。

user@localhost:~$ cd /usr/local/myproject
user@localhost:/usr/local/myproject$ export DJANGO_SETTINGS_MODULE=settings
user@localhost:/usr/local/myproject$ python manage.py shell
Error: Could not import settings 'myproject.settings' (Is it on sys.path?): No module named settings
user@localhost:/usr/local/myproject$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import settings
>>>

为了确认我没有发疯,我注释掉了manage.py中除import settings行外的所有内容,并正确运行了该行。

我也尝试过设置,os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'sys.path.append('/usr/local/myproject')直接在manage.py的顶部,但无济于事。

这里发生了什么?Django为什么使用错误的设置模块名称?这真让我抓狂。


问题答案:

如果您的根目录名称与其中一个应用程序的名称相同,则会发生这种情况。例如,在这里,我有一个名为的目录,bar其中包含一个Django项目以及一个应用程序bar

Simons-MacBook-Pro ~/temp
$ cd bar

Simons-MacBook-Pro ~/temp/bar
$ ./manage.py shell
Error: Could not import settings 'bar.settings' (Is it on sys.path?): No module named settings

Simons-MacBook-Pro ~/temp/bar
$ ls -l
total 48
-rw-r--r--  1 simon  staff     0 25 Oct 10:46 __init__.py
-rw-r--r--  1 simon  staff   130 25 Oct 10:46 __init__.pyc
drwxr-xr-x  7 simon  staff   238 25 Oct 10:46 bar
-rwxr-xr-x  1 simon  staff   503 25 Oct 10:46 manage.py
-rw-r--r--  1 simon  staff  5025 25 Oct 10:46 settings.py
-rw-r--r--  1 simon  staff  2658 25 Oct 10:46 settings.pyc
-rw-r--r--  1 simon  staff   556 25 Oct 10:46 urls.py

将根目录的名称更改为foo(或以外的其他名称bar)可以解决此问题:

Simons-MacBook-Pro ~/temp/bar
$ cd ..

Simons-MacBook-Pro ~/temp
$ mv bar foo

Simons-MacBook-Pro ~/temp
$ cd foo

Simons-MacBook-Pro ~/temp/foo
$ ./manage.py shell
Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>


 类似资料:
  • 你好,我相信你可以帮助我的问题。我用的是Windows10,64bit.我运行下面的代码在spyder。但是存在"ModuleNotFoundError: No模块名为'tensorflow_core.estimator'"的错误。我卸载了拉伸流,拉伸板,拉伸流估计器,然后再次安装,但错误并没有消失。请问怎么解决? 代码:导入时间导入熊猫为pd导入Numpy为np导入matplotlib.pypl

  • 当我尝试从python终端导入我得到这个错误,虽然我按照所有的步骤来安装xgboop,不知何故python是无法获得包的详细信息。我是相对较新的python,我可以很容易地安装Numpy和熊猫包,我使用这个链接在MACOSX上安装http://xgboost.readthedocs.io/en/latest/build.html 当我做pip安装xgboop,我得到这个错误, 我在打印系统路径上得

  • 我正在尝试使用(https://github.com/aleju/imgaug)我已使用以下命令成功安装了它: 命令的输出: 下载/解包githttps://github.com/aleju/imgaug 克隆https://github.com/aleju/imgaug 运行setup.py的/tmp/pip-PsA5jC-build(路径:/tmp/pip-PsA5jC-build/setup

  • 我在Python中工作,使用Flask。当我在我的计算机上运行我的主Python文件时,它工作得很好,但当我激活venv并在终端中运行Flask Python文件时,该文件显示我的主文件有“No Module Named bs4”。任何评论或建议都非常感谢。

  • 下面是我的相关目录结构(Windows 7,Python 2.7,virtualenv) 当我尝试运行这个 django 应用程序时出现以下错误错误:没有名为帐户的模块 我已经阅读了有关SO的其他帖子,这些帖子提到了系统路径是问题所在,或者appname与项目名称匹配 Django Shell 没有模块命名设置 ...因此,我在base_settings.py文件中添加了以下语句 我通过在PyCh