Python 从另一个脚本导入函数

Python 从另一个脚本导入函数,python,function,Python,Function,我在尝试以以下方式导入函数时遇到“utf-8”编解码器无法解码位置16中的字节0x98:invalid start byte错误: from Tutorials.Functions.Files import path_to_project_root 经过一些调查,我发现问题是由于对Tutorials.Functions.Files本身中的path\u to\u project\u root函数进行了一些额外的调用。换句话说,我的教程.Functions.Files如下所示: def path_

我在尝试以以下方式导入函数时遇到
“utf-8”编解码器无法解码位置16中的字节0x98:invalid start byte
错误:

from Tutorials.Functions.Files import path_to_project_root
经过一些调查,我发现问题是由于对
Tutorials.Functions.Files
本身中的
path\u to\u project\u root
函数进行了一些额外的调用。换句话说,我的
教程.Functions.Files
如下所示:

def path_to_project_root(projectName)
# The function body
return smt
path_to_project_root("myProject")

我意识到,当我在另一个脚本中导入它时,调用
path\u to\u project\u root(“myProject”)
是一个问题,只需对它进行注释,一切都很好我正在寻找这个问题背后的基本原理。

这就是Python的工作原理,Python是一种脚本语言,您想让解释器知道的一切都必须首先由解释器解释

在这种情况下,您从
文件导入一些函数,解释器必须读取并执行它


试想一下,如果在
path\u to\u project\u root
函数中执行一些导入操作,而不运行文件中的所有语句,那么导入的模块可能无法正常工作

谢谢你的回答,但是导入一个完整的脚本和像我这样从整个脚本中导入一个函数有什么区别呢?事实上没有什么区别,除非您只能使用您导入的特定函数,因为您只获得了对您导入的函数的引用。变量
sys.modules
包括您导入的所有模块,
import module
from module import function
sys.module
的影响相同。感谢您的评论,但我还是不明白你的意思。请简化一下。
文件
是一个模块,
路径到项目根
是一个函数。当您
导入文件时
获得了对模块的引用,否则,当
从X.X.Files导入路径\u到项目\u根时
获得了对函数的引用。这就是所有的区别。