如何使包对计算机可见

How to make a package be visible for a computer

我真的很想在 python 中创建一个包。为此,我观看并阅读了几个教程,但总有一些东西不想工作。

我在做什么

我创建了一个文件夹 package__tutorial,其中有另一个文件夹对应于我的包的名称 - mypackage

文件夹 mypackage 包含两个文件:

  1. __init__.py - 指示包所在位置的文件
  2. functions.py - 包含要包含到包中的函数的文件

在functions.py中有一些基本功能:

def average(x,y):
    return (x+y)/2

总结一下——我的文件结构如下

package__tutorial 包含 mypackage 包含 __init__.pyfunctions.py.

我尝试使用 import mypackage 加载我的包,然后使用 average(2,8),但我收到 name 'average' is not defined 的消息。似乎我的电脑看不到我新创建的包。我做了什么 wrong/something 遗漏了吗?

如果你使用 import mypackage 那么你需要用 mypackage.mymethod() 调用方法或者,如果你只想要 mypackage 中的 mymethod,请使用

from mypackage import mymethod

mymethod()

这只是您导入方式的问题。由于 averagefunctions.py 中的一个函数,您必须从 mypackage 包中导入 functions 模块。

from mypackage import functions
functions.average(2, 8)

如果只想调用 average 而不是 functions.average,可以使用通配符导入。

from mypackage.functions import *
average(2, 8)

但是,请谨慎使用此方法,因为使用通配符导入导入具有相似命名函数的模块可能会出现问题。