我尝试搜索但找不到正确的解决方案。如果我错过了请指出我。
我有一个如下所示的 google colab 笔记本。我将在代码说明旁边描述我的问题。
首先安装驱动器
from google.colab import drive
drive.mount('/content/drive')
将文件夹附加到路径。在这个文件夹中,我有一个名为 multiFunc.py 的 py 文件,它定义了 4 个函数
import sys
sys.path.append('/content/drive/MyDrive/temp')
导入多功能
import matplotlib.pyplot as plt
import multiFunc
到目前为止,一切都很好,但我在某些功能上遇到了一些问题。 multiFunc.py 文件显示在底部。前两个功能对我有用,但后两个功能对我不起作用。当然,如果我将所有这些功能包含在同一个 Colab 笔记本的部分中,则一切正常。
第一个函数工作正常并给出正确的输出并打印 8
print(multiFunc.TestAdd(2,6))
第二个功能也可以正常工作并打印文本 jpg
print(multiFunc.ReturnExt('abcd.jpg'))
第三个功能不起作用并抱怨没有找到plt。我已在主 colab 笔记本中将 matplotlib.pyplot 作为 plt 导入,并希望它生效,但除非我将其包含在函数 py 文件中,否则它不起作用。有办法让这个工作吗?
img = multiFunc.ReturnImage('image path')
在第四个函数中,我试图更改函数内的全局变量,但它不起作用。我希望全局变量 b 变为 10,但事实并非如此。这个函数的参数没有做任何事情,我只是拥有它。
b = 5
multiFunc.ChangeGlobal(2)
这里是multiFunc.py的内容
def TestAdd(a, b):
c = a + b
return c
def ReturnExt(filename):
ext = filename.split('.')[-1]
return ext
def ReturnImage(path):
im = plt.imread(path)
return im
def ChangeGlobal(a):
global b
b = 10
非常感谢任何帮助。 问候!
您是否有理由不想在 multiFunc 模块中导入 matplotlib?据我所知,这对于“所有”编程语言都是必须的(将模块导入到您正在使用它的文件中)。如果您不在主文件中调用 plt,则不必在那里导入它,但您需要在 multiFunc 中导入它,因为您正在那里调用它。你当然可以在两个地方导入它,只是不要使用
from multiFunc import *
至于你的第二个问题,请查看:https://stackoverflow.com/a/15959638/21134500