Python / ImportError:不支持按文件名导入[重复]

Posted

技术标签:

【中文标题】Python / ImportError:不支持按文件名导入[重复]【英文标题】:Python / ImportError: Import by filename is not supported [duplicate] 【发布时间】:2014-11-17 18:47:31 【问题描述】:

我正在尝试将一个 python 文件导入到我用 python 编写的应用程序中。

我有以下代码:

import os
from os.path import basename

class specificClass:
    def dothing(self,path):
          runcommand = __import__("/root/"+ os.path.splitext(os.path.basename(path))[0]+ "/" + os.path.splitext(os.path.basename(path))[0] +"/sa/update.py")
          runcommand.main()

当我运行它时,它给了我以下错误:

ImportError: Import by filename is not supported.

【问题讨论】:

尝试在金字塔中添加路线并且您没有将正常路线路径作为第二个参数时也会引发此错误。示例: config.add_route('admin_ajax_get_items', 'admin_ajax_get_items') 而不是 config.add_route('admin_ajax_get_items', '/url/path') 【参考方案1】:

你可以说,而不是像 __import__ 这样的导入

import sys
sys.path.append(path) # this is where your python file exists
import update

【讨论】:

这是否意味着我必须将我要运行的包函数所在的文件夹添加到路径中?假设我想在 .. 中运行一个函数,有没有办法以 any 方式导入该函数? 实际上并没有回答这个问题,而且通常会提倡在 python 模块中修改系统路径的极坏做法。 这样做的正确方法是什么?

以上是关于Python / ImportError:不支持按文件名导入[重复]的主要内容,如果未能解决你的问题,请参考以下文章

ERROR: from PIL import Image ImportError: No module named PIL

ImportError: No module named 'MySQLdb'

ImportError:没有名为“tensorflow.python”的模块与 tensorflow-gpu

ImportError:仅在 django 中没有名为“bs4”的模块

Python 3:ImportError“没有名为 Setuptools 的模块”

Python、Django mod_wsgi、virtualenv 错误:ImportError: No module named os(路径不正确)