【问题标题】:Python / ImportError: Import by filename is not supported [duplicate]Python / ImportError:不支持按文件名导入[重复]
【发布时间】: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')

标签: python


【解决方案1】:

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

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

【讨论】:

  • 这是否意味着我必须将我要运行的包函数所在的文件夹添加到路径中?假设我想在 .. 中运行一个函数,有没有办法以 any 方式导入该函数?
  • 实际上并没有回答这个问题,而且通常会提倡在 python 模块中修改系统路径的极坏做法。
  • 这样做的正确方法是什么?
猜你喜欢
  • 2016-04-01
  • 2019-01-29
  • 2018-02-10
  • 2018-02-18
  • 1970-01-01
  • 2012-02-02
  • 2017-06-20
  • 2016-08-17
  • 2012-12-19
相关资源
最近更新 更多