将py文件导入google colab笔记本

问题描述 投票:0回答:1

我尝试搜索但找不到正确的解决方案。如果我错过了请指出我。

我有一个如下所示的 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

非常感谢任何帮助。 问候!

python google-colaboratory
1个回答
0
投票

您是否有理由不想在 multiFunc 模块中导入 matplotlib?据我所知,这对于“所有”编程语言都是必须的(将模块导入到您正在使用它的文件中)。如果您不在主文件中调用 plt,则不必在那里导入它,但您需要在 multiFunc 中导入它,因为您正在那里调用它。你当然可以在两个地方导入它,只是不要使用

from multiFunc import *

至于你的第二个问题,请查看:https://stackoverflow.com/a/15959638/21134500

© www.soinside.com 2019 - 2024. All rights reserved.