6

我刚开始使用 Python,我想使用外部 RSS 类。我在哪里放置该类以及如何导入它?我希望最终能够共享 python 程序。

4

6 回答 6

16

关于import声明:

(一篇很好的文章在http://effbot.org/zone/import-confusion.htm和 python 教程在http://docs.python.org/tutorial/modules.html有详细的介绍)

将代码导入 python 程序有两种常规方法。

  1. 模块
  2. 套餐

模块只是一个以 .py 结尾的文件。对于 python,它必须存在于搜索路径中(如 sys.path 中所定义)。搜索路径通常由正在运行的 .py 的同一目录以及 python 系统目录组成。

给定以下目录结构:

myprogram/main.py
myprogram/rss.py

在 main.py 中,您可以通过运行以下命令“导入”rss 类:

import rss
rss.rss_class()

#alternativly you can use:
from rss import rss_class
rss_class()

包提供了一种更结构化的方式来包含更大的 Python 程序。它们只是一个包含一个__init__.py以及其他 python 文件的目录。

只要包目录是 on sys.path,那么就可以和上面一模一样的使用了。


要查找当前路径,请运行以下命令:

import sys
print(sys.path)
于 2009-02-28T21:03:54.540 回答
2

我真的不喜欢这么晚回答,但我对现有的答案并不完全满意。

我刚开始使用 Python,我想使用外部 RSS 类。我在哪里放置该类以及如何导入它?

你把它放在一个 python 文件中,并给 python 文件一个扩展名 .py 。然后您可以导入代表该文件的模块,并访问该类。假设您要导入它,则必须将 python 文件放在导入搜索路径中的某个位置——您可以在运行时sys.path使用和当前目录('')一般在导入搜索路径中。当你有一个单一的同构项目时,你通常把它和你的其他模块放在同一个目录中,并让它们从同一个目录中相互导入。

我希望最终能够共享 python 程序。

将其设置为独立文件后,您可以使用distutils将其设置为分发。这样你就不必担心它应该安装在哪里——distutils 会为你担心。还有许多其他额外的分发方式,许多特定于操作系统的 - distutils 适用于模块,但是如果您想分发用户应该运行的适当程序,则存在其他选项,例如在 Windows 上使用py2exe

至于模块/包的区别,好吧,就这样吧。如果你有一大堆类要分割,这样你就不会有一大堆的 python 文件,你可以将它分成一个目录中的多个 python 文件,并给目录一个__init__.py. 需要注意的重要一点是,在 Python 中,包和任何其他模块之间没有区别。包是一个模块,它只是在文件系统上表示模块的另一种方式。同样,一个模块不仅仅是一个 .py 文件——如果是这样的话,sys不会是模块,因为它没有 .py 文件。它内置在解释器中。有无数种方法可以在文件系统上表示模块,因为您可以添加导入钩子,这些钩子可以创建目录和 .py 文件以外的方法来表示模块。假设可以创建一个导入钩子,它使用 spidermonkey 将 Javascript 文件作为 Python 模块加载。

于 2009-02-28T21:32:13.143 回答
1
from [module] import [classname]

模块在您的 python 路径上的某个位置。

于 2009-02-28T20:55:38.223 回答
1

关于模块和包:

  • 模块是一个以 . 结尾的文件.py。您可以将您的课程放在这样的文件中。正如 Andy 所说,它需要在您的 python 路径(PYTHONPATH)中。通常,您会将附加模块放在与您的脚本相同的目录中,但可以直接导入。

  • 包是包含一个__init__.py(可以为空)并包含模块文件的目录。然后,您可以导入 la from <package>.<module> import <class>。同样,这需要在您的 python 路径上。

您可以在文档中找到更多信息

于 2009-02-28T21:03:26.630 回答
0

如果您想将 RSS 文件存储在其他位置,请使用 sys.append("") 并将模块放入该目录并使用 import 或 from import *

于 2013-03-04T07:55:03.367 回答
0

创建类的第一个文件是“first.py”

第一.py:

class Example:
   ...

您创建第二个文件,您要在其中使用“first.py”中包含的类,即“second.py”

myprogram/first.py
myprogram/second.py

然后在第二个文件中,要调用第一个文件中包含的类,您只需键入:

第二个.py:

from first import Example
...
于 2017-09-12T10:38:03.527 回答