当前位置: 首页 > 面试题库 >

导入python模块不在路径上

王成化
2023-03-14
问题内容

我有一个模块foo,包含util.py和bar.py。

我想将其导入IDLE或python会话中。我该怎么办?

我找不到关于如何在当前目录或默认python PATH中导入模块的文档。经过尝试后import "<full path>/foo/util.py"from "<full path>" import util

我能得到的最接近的是

import imp
imp.load_source('foo.util','C:/.../dir/dir2/foo')

这给了我在Windows 7上拒绝的权限。


问题答案:

一种方法是简单地修改路径:

import sys
sys.path.append('C:/full/path')
from foo import util,bar

请注意,这要求foo为python包,即包含一个__init__.py文件。如果您不想修改sys.path,也可以修改PYTHONPATH环境变量或在系统上安装模块。请注意,这意味着.py可能会无意中加载该目录中的其他目录或文件。

因此,您可能要使用imp.load_source代替。它需要文件名而不是目录(允许当前用户读取的文件):

import imp
util = imp.load_source('util', 'C:/full/path/foo/util.py')


 类似资料:
  • 问题内容: 给定相对路径,如何导入Python模块? 例如,如果包含和,和包含,我怎么导入到? 这是一个视觉表示: 希望包含,但是重组文件夹层次结构不是一种选择。 问题答案: 假设你的两个目录都是真实的Python包(文件中确实有文件),那么这是一个相对于脚本位置包含模块的安全解决方案。 我假设你想这样做,因为你需要在脚本中包括一组模块。我在多个产品的生产环境中使用了此功能,并在许多特殊情况下工作

  • 问题内容: 我正在python 2.7中开发自己的模块。它位于而不是或中。内部结构为: 包括课程。我遇到导入问题: 我没有将PythonPath设置为包括我的,因此,当server.http尝试包含client.PyCachedClient时,它将尝试从相对路径加载它并失败。我的问题是- 我应该如何以良好的pythonic方式设置所有路径/设置?我知道每次打开控制台并尝试运行服务器时都可以在she

  • 问题内容: 我已经看到了几种通过首先导入来查找模块路径的方法。有没有一种方法,而无需导入模块? 问题答案: 使用pkgutil模块: 使用imp模块: 注意:使用imp模块,您 无法 做类似的事情

  • 本文向大家介绍python根据路径导入模块的方法,包括了python根据路径导入模块的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python根据路径导入模块的方法,分享给大家供大家参考。具体方法如下: 常规做法如下: 而要直接通过路径 使用时使用util.method,此时并没有定义method method = util.method后才可以直接用method 希望本文所述对大

  • 我需要在Python中导入一个名为array_queue的模块。我检查了一下,如果我不使用它,就会出现一个提示:“array_queue imported but unused”。但是,如果我使用它并运行该程序,则会出现以下情况: ModuleNotFounderRror:没有名为“array_queue”的模块

  • 问题内容: 给定Python模块的完整路径,如何加载它?注意,该文件可以位于文件系统中的任何位置,因为它是一个配置选项。 问题答案: 对于Python 3.5+,请使用: 对于Python 3.3和3.4,请使用: (尽管在Python 3.4中已弃用此功能。) 对于Python 2,请使用: 编译后的Python文件和DLL具有等效的便捷功能。