我试图将一组python类从我的mdt文件夹导入views.py
,但每次我尝试使用localhost运行视图时,都会收到网络类的ModuleNotFoundError。我还知道我的FoliumMap类没有正确导入,因为当我删除返回网络类错误的部分代码时,我无法从FoliumMap类访问函数。我看到了一些关于这方面的问题,并尝试按照他们所说的做,但我仍然得到相同的ModuleNotFoundError,或者它根本找不到文件。我真的很难看到我错过了什么
除了下面的内容,我没有更改Django生成的任何文件,只是为了获取URL&;本地主机正在工作
Here's目前的文件结构,我试图从FoliumMap.py
文件中导入FoliumMap
类,以及Network
、Segment
和Node
类
Here's我一直得到的错误页面
以下是views.py
中的所有代码:
from .mdt.FoliumMap import *
from .mdt.Network import *
import pickle
from django.shortcuts import render
from django.http import HttpResponse
def show_emissions(request):
fol = FoliumMap()
network = pickle.load( open( "*obj filepath*", "rb" ) )
fol.draw_network(network, metric='emissions')
fol.add_layers()
folium.LayerControl(collapsed=False).add_to(fol.map)
m=fol.get_map()._repr_html_()
context = {'my_map': m}
return render(request, 'mdt_webapp/index.html', context)
以下是我的大部分settings.py
(我没有真正改变django生成的版本的其余部分):
...
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'mdt_webapp',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
...
谢谢你的帮助
在mdt文件夹中创建
__init__.py
文件。现在试试说明: 当创建{{CD1>}文件Python时,将MDT视为一个模块,并且可以导入该模块内的任何文件
这里的mdt目录位于mdt_webapp目录中。您正在尝试导入位于mdt目录中的类。只需卸下盖子。从您的导入或您可以使用完整路径
但是千万不要在python中盲目导入,这是不推荐的。所以像这样导入您的类
相关问题 更多 >
编程相关推荐