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

如果import语句仅包含文件名,python如何找到模块文件?

卢阳成
2023-03-14
问题内容

我在任何地方都能看到使用import sys或的Python代码导入模块import mymodule

如果没有提供目录或路径,解释器如何找到正确的文件?


问题答案:

http://docs.python.org/3/tutorial/modules.html#the-module-search-
path

6.1.2。模块搜索路径

spam导入名为的模块时,解释器首先搜索具有该名称的内置模块。如果未找到,那么它将搜索spam.py该变量给定的目录列表中命名的文件sys.pathsys.path从以下位置初始化:

  • 包含输入脚本的目录(如果未指定文件,则为当前目录)。
  • PYTHONPATH(目录名称列表,语法与shell变量相同PATH)。
  • 取决于安装的默认值。

注意:在支持符号链接的文件系统上,在遵循符号链接之后计算包含输入脚本的目录。换句话说,包含符号链接的目录不会添加到模块搜索路径中。

初始化后,Python程序可以进行修改sys.path。包含正在运行的脚本的目录位于搜索路径的开始,在标准库路径之前。这意味着将加载该目录中的脚本,而不是库目录中相同名称的模块。除非打算进行更换,否则这是一个错误。有关更多信息,请参见标准模块部分。

有关“特定于安装的默认设置”的信息,请参阅模块上的site文档。



 类似资料:
  • 问题内容: 我正在使用django,并且我有一个名为models.admin.py的文件,我想在models.py中执行以下操作: 但是,使用双引号引起了语法错误。但是如果我只是做 然后我得到“导入错误:没有名为管理员的模块” 有什么方法可以从名称中带有句点的python文件导入? 问题答案: 实际上,您 可以 导入名称无效的模块。但是您需要使用它,例如,假设文件名为,则可以 但阅读文档上,并开始

  • 如果你想要直接输入argv变量到你的程序中(避免在每次使用它时打sys.),那么你可以使用from sys import argv语句。如果你想要输入所有sys模块使用的名字,那么你可以使用from sys import *语句。这对于所有模块都适用。一般说来,应该避免使用from..import而使用import语句,因为这样可以使你的程序更加易读,也可以避免名称的冲突。

  • 问题内容: 我正在运行一个简单的服务器 当我向主页发出GET请求时,运行时将引发以下错误 我不明白这个错误。有任何想法吗?我正在Cloud9中工作。 我的目录结构是 问题答案: 包含路径是相对的,您需要更新路径以包含“ partials”子文件夹,例如 查看文档

  • 我的html文件中有这个脚本: 我得到以下错误:Uncapted SyntaxError:无法在模块外使用import语句 在后面的代码中: 我这样做是为了以后能够运行这一行:

  • 我正在尝试加入一些。txt。png和其他文件转换为我的jar文件。我在src文件夹下创建了一个名为“resources”的文件夹。从IDE运行程序时,程序可以正确找到所有文件。但是,只要我用代码创建一个jar文件,就找不到任何文件。当然,我使用了getClass()。getResource(…)。 有人能帮我吗?:/