- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚使用 Mercurial 将 Django 项目克隆到了已设置 Python 2.7 的 Windows 计算机上。当我尝试运行 manage.py
(使用或不使用命令)时,出现以下错误:
Traceback (most recent call last):
File "C:\Users\jes.000\Documents\project\manage.py", line 30, in <module>
import django.core.servers.basehttp
File "C:\Python27\lib\site-packages\django\core\servers\basehttp.py", line 26, in <module>
from django.views import static
File "C:\Python27\lib\site-packages\django\views\static.py", line 95, in <module>
template_translatable = ugettext_noop(u"Index of %(directory)s")
File "C:\Python27\lib\site-packages\django\utils\translation\__init__.py", line 75, in gettext_noop
return _trans.gettext_noop(message)
File "C:\Python27\lib\site-packages\django\utils\translation\__init__.py", line 48, in __getattr__
if settings.USE_I18N:
File "C:\Python27\lib\site-packages\django\utils\functional.py", line 184, in inner
self._setup()
File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 40, in _setup
raise ImportError("Settings cannot be imported, because environment variable %s is undefined." %ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.
我知道manage.py应该设置该环境变量。我也明白我可能会收到此错误,因为该项目不在 python 路径中...但手动添加它似乎没有必要。是不是manage.py也应该解决这个问题?
编辑:我刚刚测试过,发现它在 Linux 下执行完全相同的操作。
编辑:这是一个有用的发现:如果我通过 PIP 安装 Django,我只会收到此错误,如果我在 Ubuntu 上安装 python-django 包,它就可以正常工作。所以 debian 包做了一些 PIP 没有做的事情。也许 debian 软件包设置了一些环境变量?我需要弄清楚这一点,因为我正在尝试在 Windows 上进行开发。
编辑:我想我已经找到了问题,但没有找到解决方案。在 Ubuntu 机器上工作,当我通过 PIP (pip install django
) 安装 Django 时,该项目无法正常工作,并出现我给出的错误。如果我创建一个新项目(django-admin startproject testproject
)并尝试它的工作原理,它由创建的文件夹中的manage.py
组成,另一个文件夹包含其他一切。像这样:
+-testproject
+-manage.py
+-testproject
+-__init__.py
+-etc.
当我安装 Debian 软件包(apt-get install python-django
)时,我正在尝试处理的项目可以正常工作,如果我创建一个测试项目(django-admin startproject testproject
)它的文件夹结构如下:
+-testproject
+-manage.py
+-__init__.py
+-etc.
请注意差异:PIP Django 包似乎将 manage.py 放在应用程序的 python 模块之外,而 Debian 包将 manage.py 放在模块内。我认为这是由于两个包属于不同版本的 Django,它们改变了结构,因为这两个包以不同的方式执行此操作没有任何意义。
所以我的问题是,我尝试开发的项目最初是使用 Debian 打包的版本生成的,而在我的 Windows 计算机上,我尝试使用 pip 中的 Django 版本。
问题是我不确定如何解决这个问题。天真地将manage.py移到一个目录中,使其位于项目文件夹之上是行不通的,因为这个“debian-package版本”manage.py尝试仅导入设置
,如果它不在项目文件夹中,则会失败与 settings.py 位于同一文件夹。但是在 Django 的其他地方,似乎期望项目本身位于//settings.py (如果使用 django-admin 的 pip 版本就是这种情况)而不是/settings.py (就像如果使用 debian-package 版本的情况)。
如果我查一下,Ubuntu 存储库中的版本是 1.3.1,而 PyPI 中的版本是 1.4。查看 1.4 的发行说明,嘿:
An updated default project layout and manage.py that removes the “magic” from prior versions. And for those who don’t like the new layout, you can use custom project and app templates instead!
但是...使用 1.3 布局生成的项目不应该仍然在 1.4 下工作吗...?
最佳答案
我不确定这在最新版本的 django 中是否有所改变,但默认的 manage.py
只是尝试导入 settings.py
文件并启动管理者。默认情况下,您需要将项目放入 PYTHONPATH 中,或者将 settings.py 放入 DJANGO_SETTINGS_MODULE 变量中。
您可以使用以下代码段修改 manage.py
使其更加智能:
manage.py
#!/usr/bin/env python
from django.core.management import execute_manager
...
import settings
import os
project = os.path.basename(os.path.dirname(__file__))
os.environ['DJANGO_SETTINGS_MODULE'] = '%s.settings' % project
if __name__ == "__main__":
execute_manager(settings)
现在您可以从任何位置运行manage.py,因为它始终会显式设置settings.py 文件的路径。
关于python - Django:manage.py ImportError 因为环境变量未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10627943/
I have created a hybrid activation and then setup an ssm agent on my on-premise windows system.我创
我对 python/django 编程很陌生,因为我没有编程背景。我正在在线上课,我只想确切地知道 manage.py 文件的作用。我试过用谷歌搜索它,但除了在 django-admin.py 周围放
我的 DependancyInject 存在结构问题。 情况 我正在为基于体素的游戏创建服务器;它是完全调制的,但相关模块有以下3个。 NetworkModule(发送和接收数据包)WorldModu
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 5年前关闭。 Improve thi
上 Docker正在编写的网站: The MANAGER STATUS column shows node participation in the Raft consensus: No value
我正在尝试使用发布管理作为构建版本的工具,但我很难理解码件、工具和操作之间的真正区别。有人可以分解这三个概念之间的差异以及它们如何相互配合吗? 最佳答案 由于它适用于基于代理的版本: 工具旨在提供自定
当尝试在远程环境中在 pycharm 中执行“run manage.py Task...”时,出现以下错误: ssh://vagrant@127.0.0.1:2222/home/vagrant/.vi
在过去的 48 小时里,我一直在努力解决这个问题,这让我发疯了。 我的 SDK Manager.exe 闪烁一个 cmd 屏幕并在不到一秒内关闭。 经过多方搜索,我终于在调整android.bat并以
我在 this tutorial 之后创建了以下自定义管理命令. from django.core.management.base import BaseCommand, CommandError f
我在一家拥有 2,500 多名员工和同样多的 Android 智能手机的非营利组织工作。 近年来,我们测试了许多 EMM 产品。尽管我们只需要一些非常基本的功能,除了一两个特殊功能,但没有一个能真正赢
我已经在我的网站上安装了 Google 标签管理器,但自从新版本的 Google 标签管理器以来,我无法使用预览选项。每次我点击它时,我都会看到我的网站页面打开,但随后出现以下错误:“Tag Assi
我是 django 的新手,并创建了一个与教程中描述的民意调查网站没有太大区别的应用程序。 在网站上我得到: Exception Type: TemplateSyntaxError Exception
https://cloud.google.com/deployment-manager/docs/configuration/templates/create-basic-template 我可以像这
我们正在使用 Microsoft 的发布管理将我们的 Web 应用程序部署到我们的测试环境 (QA)。它是一个直接的 MVC.Net Web 应用程序。我们的构建生成一个 web 部署包,我们有一个命
我想将 python manage.py 缩短为 ./manage.py。 这可能很简单,但我找不到答案。我在有关 django 的问题的答案之一中看到了一步一步的方法,但我没有记住。尝试在 stac
我想将 python manage.py 缩短为 ./manage.py。 这可能很简单,但我找不到答案。我在有关 django 的问题的答案之一中看到了一步一步的方法,但我没有记住。尝试在 stac
我正在使用安装了 SQL Server Data Tools 的 VS 2012。我有一个 ADO NET 源,它使用 .Net Providers\MySQL 数据提供程序,并试图将一些数据推送到
根据我从文档中阅读的内容 https://developer.android.com/topic/libraries/architecture/workmanager , 它说: The task i
这两个类显然是相关的。 SupportFragmentManager 是否用于使用 FragmentTransaction 生成的 Fragments,而“常规”FragmentManager 专门用
我有一个桌子经理(经理ID、姓名、地址、城市、电话)。如果多个经理来自同一城市,我必须显示城市、姓名和电话详细信息。我的代码是:。但这向我展示了第一行中的一个错误,即“不是按表达式分组”。请救救我!
我是一名优秀的程序员,十分优秀!