- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在安装了所有要求并启动应用程序后,我从 git 克隆了一个 Flask 应用程序
$ python start.py
我收到以下错误
Traceback (most recent call last):
File "start.py", line 6, in <module>
app = create_app("local")
File "C:\Jahangeer\qurbcode\api\app\__init__.py", line 66, in create_app
from app.api_1_0 import apibp as api_1_0, api_spec as api_1_0_spec
File "C:\Jahangeer\qurbcode\api\app\api_1_0\__init__.py", line 78, in <module>
ModuleImport.importModulesFromPath(os.path.dirname(os.path.realpath(__file__)), __name__)
File "C:\Jahangeer\qurbcode\api\app\helpers\module_import.py", line 16, in importModulesFromPath
importlib.import_module("." + module, package)
File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module
__import__(name)
ImportError: Import by filename is not supported.
Start.py有以下代码
import os
from app import create_app
app = create_app("local")
if __name__ == '__main__':
app.run(host= '0.0.0.0', threaded=True)
并且在上面错误中提到的第 66 行的我的 init.py 中有以下内容
# Setup api/1.0 blueprint
from .api_1_0 import apibp as api_1_0, api_spec as api_1_0_spec
from .admin import admin_bp as admin
app.register_blueprint(api_1_0, url_prefix='/api/1.0')
这是应用程序结构
api
->admin_app
->app
->admin
->api_1_0
->__init__.py
->start.py
->manage.py
我的 api\app\helpers\module_import.py 有以下代码:
import glob
import importlib
class ModuleImport:
@staticmethod
def importModulesFromPath(dir_path, package, import_init = False):
files = glob.glob(dir_path + "/*.py")
for file in files:
module = file.replace(dir_path, "").replace("/", "").replace(".py", "")
if module == "__init__" and not import_init:
continue
importlib.import_module("." + module, package)
我的 api\app\api_1_0__init__.py 有以下代码:第 78 行
ModuleImport.importModulesFromPath(os.path.dirname(os.path.realpath(__file__)), __name__)
最佳答案
您的自动加载器几乎肯定在做坏事(tm)。
看起来您的代码设计为在 Linux 上运行,但您却在 Windows 上运行。就其本身而言,这不一定是坏事,但它的编写方式并不支持这一点。具体来说,glob.glob(dir_path + "/*.py")
正在返回所有 .py
的路径目录中的文件,它们看起来像 C:\\path\\to\\file.py
。后来外链module = file.replace(dir_path, "").replace("/", "").replace(".py", "")
将尝试剥离 .py
和 C:\\path\\to
零件,留给您 \\file
,但是.replace('/', '')
不会删除前导反斜杠,因为它正在寻找正斜杠,而 Windows 使用反斜杠。然后您将尝试导入 \\file
,您不能这样做,因为您无法将路径传递给 __import__
函数 - 这不是它的工作原理。
短期内,如果您更改 ModuleImport
,您可能会发现一切都会变得栩栩如生。拥有 import os
的工具在顶部。然后替换dir_path + "/*.py"
与 os.path.join(dir_path, '*.py')
,和replace("/", "")
与 replace(os.sep, "")
。这应该可以解决您眼前的问题,但您不应该这样保留代码。
从长远来看,这不是自动加载模块的好方法,如果您使用 importlib 来正确加载模块,那么您可能可以以更好的方式加载模块。当我看到像 sys.path.append
这样的东西时,我通常认为这是一种代码味道。或importlib.import
敲来敲去。如果您查看 How to load all modules in a folder?,您可能会发现您的代码更容易维护
关于Python Flask 应用程序在启动时抛出以下错误 ImportError : Import by filename is not supported,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53495500/
如何根据可用性使用有时像这样导入的不同模块运行相同的测试: try: from gevent.local import local except ImportError
我在使用 Nose 运行我的单元测试时遇到了一个ImportError,而当我单独运行它时却没有。此处提及的所有文件均可在 http://gist.github.com/395541# 中查看. 如果
当我在一个Python程序中导入熊猫时,我收到以下错误。这里也是程序:
我想下载Spacy,但终端的打字扩展版本降低了:。接下来,我想安装语言包python-m spacy Download en,但出现另一个错误:。我当前的python版本是3.7,我应该更新它吗?或者
我想下载Spacy,但终端的打字扩展版本降低了:。接下来,我想安装语言包python-m spacy Download en,但出现另一个错误:。我当前的python版本是3.7,我应该更新它吗?或者
Traceback (most recent call last): File "c:\users\sathish.pv\appdata\local\continuum\anaconda3\lib
我已经编写了一个名为coinview.py的脚本,它可以在Linux上运行。当我尝试以SYSTEM D身份运行它时,出现错误。错误:ImportError:没有名为‘Schedule’的模块。。我用的
这是我的错误信息 Traceback (most recent call last): File "app.py", line 9, in from forms import Conta
我正在使用 Mac OS x 10.10.3 Yosemite 和 Python 2.7.9 |Anaconda 2.2.0 (x86_64) 来处理很多 python 的东西。我正在使用 Eclip
我是 Django 新手,正在创建我的第一个项目。一切正常,突然出现 ImportError('win32 only') ImportError: win32.在网上搜索了很多,但没有找到解决方案。
回复 a similar question建议我不能以独立模式导入 Shell 的东西。但是,据我了解,St 是一个用 C 编写的单独库。但我仍然无法在 gjs 中导入它...... IE。 $ gj
好吧,我被这个难住了。我环顾四周,但找不到任何东西,也不知道如何调试它。基本上,python 在我未导入任何内容的代码行中抛出一个 ImportError。我有一个相当大的模块 ICgen,其中包含模
我正在调用 psycopg2 import psycopg2 我得到标准错误 ImportError: No module named psycopg2 我用 macports 安装了我的副本,所以我
我已经使用 brew 安装了 opencv3,但是在执行 import cv2 时遇到了 importError >>> import cv2 Traceback (most recent call
安装numpy表示已经是最新版本,出现在pip list返回的列表中也是,但是导入它会产生导入错误(并且这个问题对于每个其他已安装的模块都存在,例如 scipy、matplotlib)。 系统有什么问
我有一个 python 脚本,运行时会产生以下错误: import urllib2 File "C:\Python27\lib\urllib2.py", line 94, in import htt
我正在尝试运行 this tutorial在合作实验室。 但是,当我尝试导入一堆模块时: import io import torch from torchtext.utils import down
我在这里遇到了一个特别棘手的问题。 我目前正在做一个个人项目,从一个相对简单的 Riot API 包装器开始,一切都运行良好,直到我想打包它并组织模块。这是该项目的链接:Logistic Analys
我已经通过easy_install.py --upgrade google-api-python-client安装了适用于Python的Google API客户端库。当我运行包含from oauth2
我正在使用 Django,并且我的组应用程序不断收到此错误,我检查了所有导入设置,一切都很好。我的注册和个人资料应用程序运行顺利,但为什么这个应用程序给我一个 ImportError 模型? Trac
我是一名优秀的程序员,十分优秀!