从python中的包导入模块,这个基本问题我想我甚至都找不到答案

Nat*_*zad 2 python

所以我的第一个python程序,我从PYPI下载了macholib包,然后解压缩并运行安装了setup.py使用python install,现在我正在尝试运行一个程序,我首先导入macholib,然后当我尝试访问像Macho这样的方法,它给我一个错误,说macholib模块没有名为Macho的属性.我的理解是macholib是一个包而不是一个模块或者什么东西,因此我不能使用包的内容.请回答,我在这么简单的新手问题上浪费了太多时间.使用最新版本的python运行mac.

码:

import sys
import macholib
MachO(DivXInstaller.dmg) 
Run Code Online (Sandbox Code Playgroud)

我尝试了macholib.MachO(DivXInstaller.dmg)和macholib.MachO.MachO(DivXInstaller.dmg)

Error for python test.py 
Traceback (most recent call last):
  File "test.py", line 3, in <module>
    MachO(DivXInstaller.dmg)
NameError: name 'MachO' is not defined
Run Code Online (Sandbox Code Playgroud)

Len*_*bro 5

你的代码中有这一行:

MachO(DivXInstaller.dmg) 
Run Code Online (Sandbox Code Playgroud)

但是,名称MachO没有在任何地方定义.所以Python告诉你这个错误

NameError: name 'MachO' is not defined
Run Code Online (Sandbox Code Playgroud)

如果要使用名称MachO下的MachO模块,则必须导入它:

from macholib import MachO
Run Code Online (Sandbox Code Playgroud)

你没有这样做,这是你的错误的原因.你所做的只是

import macholib
Run Code Online (Sandbox Code Playgroud)

它为您提供了可以使用的名称"macholib".但是,macholib主要包含您无法访问的子模块,因此不是特别有用.如果您不想污染命名空间,可以将MachO导入为

import machlibo.MachO
Run Code Online (Sandbox Code Playgroud)

这使您可以访问MachO模块 macholib.MachO

你还没有定义DivXInstaller.dmg,所以这将是你的下一个错误.我建议您在开始编程之前先阅读Python教程.