- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
问题
尝试运行我的自定义 Django 管理命令之一 (send_notify_emails
) 时,出现以下错误:
$ python web_apps/manage.py send_notify_emails
Traceback (most recent call last):
File "web_apps/manage.py", line 11, in <module>
execute_manager(settings)
File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 436, in execute_manager
setup_environ(settings_mod)
File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 419, in setup_environ
project_module = import_module(project_name)
File "/usr/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
ImportError: No module named my_django_app-1.0
背景
我有一个 Django 网站,里面有两个应用程序。站点目录(包括应用程序模块目录,以及 settings.py、urls.py 和 manage.py)的路径是 /srv/web_apps
。这是指向 /usr/share/my_django_app-1.0
的符号链接(symbolic link),它是生产发布标签的 svn export
。这样我就可以通过将符号链接(symbolic link)移动到新生产版本的路径来更改我的应用程序版本,并在需要时轻松改回早期版本。
我的 django.wsgi
文件将 /srv
和 /srv/web_apps
添加到 Python 路径,以便 mod_wsgi
可以找到我的设置和 url 文件,以及应用程序模块。
my_django_app-1.0
出现的唯一地方是目录路径,它不在我的 settings.py
或其他地方,所以 Django 必须获取模块名称从路径。
似乎 正在发生的是 Django 通过遵循符号链接(symbolic link)并使用目标文件夹的名称而不是符号链接(symbolic link)本身来解析我的应用程序的包名称。当我运行 manage.py
时,Django 在应该导入 web_apps
时尝试导入 my_django_app-1.0
。
最佳答案
I have a Django site with two apps in it. The path to the site directory (which includes the app module directories, as well as settings.py, urls.py and manage.py) is /srv/web_apps. This is a symbolic link to /usr/share/my_django_app-1.0, which is an svn export of a production release tag. This way I can change my app version over by just moving the symbolic link to the path for the new production version, and easily change back to an earlier release if I need to.
您所描述的基本上就是人们如此喜欢 virtualenv 的确切原因。我建议通读一下 mod_wsgi Virtual Environments .
问题是 __file__
返回符号链接(symbolic link)的相对路径取决于关于它从哪里导入(在符号链接(symbolic link)路径中..),这就是它的报告方式这是家。由于目录是模块的基本结构,如果你有一个目录在其中包含 __init__.py
,那么无论该目录被命名为“name”如果你导入它。
您也许可以覆盖此行为,但这样做是错误的东西 - 检查 virtualenv,或者为每个版本设置单独的目录,然后使用下划线而不是句点。 myApp_1_0_0等
考虑以下场景
mkdir real_directory
ln -s real_directory symlink_directory
cat >>real_directory/__init__.py <<EOF
import os
print
print '__name__ == %s' % (__name__)
print '__file__ == %s' % (__file__)
print ' abspath == %s' % os.path.abspath(__file__)
print 'realpath == %s' % os.path.realpath(os.path.abspath(__file__))
print
EOF
python -c "import real_directory"
__name__ == real_directory
__file__ == real_directory/__init__.py
abspath == /Users/nar/pt/real_directory/__init__.py
realpath == /Users/nar/pt/real_directory/__init__.py
python -c "import symlink_directory"
__name__ == symlink_directory
__file__ == symlink_directory/__init__.pyc
abspath == /Users/nar/pt/symlink_directory/__init__.pyc
realpath == /Users/nar/pt/real_directory/__init__.pyc
关于python - 当通过符号链接(symbolic link)访问文件时,如何让我的 Django manage.py 正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5875833/
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、姓名、地址、城市、电话)。如果多个经理来自同一城市,我必须显示城市、姓名和电话详细信息。我的代码是:。但这向我展示了第一行中的一个错误,即“不是按表达式分组”。请救救我!
我是一名优秀的程序员,十分优秀!