【问题标题】:How to add modules in Python?如何在 Python 中添加模块?
【发布时间】:2016-12-01 12:25:53
【问题描述】:

在 Java 中,我们有一个主类,它在需要时调用类和方法。我正在尝试构建一个具有相同风格的 Python 应用程序:主文件和一些具有额外功能的 .py 文件。

我可以使用

导入这些文件
import <filename without .py>

如果我想将所有这些文件放到lib 文件夹中怎么办?我想用我的应用为 PyPI 构建一个包。

【问题讨论】:

  • 我不明白你的问题。您可以将文件放在任何您想要的位置。您可以在任何地方创建文件夹(这与 Python 中的 package 几乎相同)。然后定义setup.py 文件,您可以将所有文件收集到一种包格式(wheel 或其他)中。
  • 来自文档的基本包装技巧:docs.python.org/3/tutorial/modules.html#packages 这就是您要找的吗?
  • 我猜它可能有效...谢谢。

标签: python pypi


【解决方案1】:
app/
  main.py
  lib/
    __init__.py
    foo.py
    bar.py

#main.py
from lib import foo
foo.SomeClass()

【讨论】:

  • 几天前我尝试了您的解决方案,但它不起作用...我现在尝试了,它起作用了。 Python 很神奇。谢谢!
【解决方案2】:

首先,在模块所在的目录中放置 __init__.py。然后 - 如果您的目录名称是 lib - import 您的文件,如下所示。

import lib.foo
lib.foo.hello() # Calls the hello() function in the lib/foo.py file

【讨论】:

    【解决方案3】:

    将所有 Python 文件放入您的 lib 目录,然后在该目录中添加一个名为 __init__.py 的文件。这个文件是空的。

    1. 创建目录:mkdir lib

    2. 在这个目录下创建一个空文件:touch __init__.py

    3. 在此创建您想要包含在您的包中的其他模块 同一个目录

    4. 在您的 shell(例如 bash)中,将 lib 添加到您的 $PYTHONPATH

      export PYTHONPATH="$PYTHONPATH:/path/to/lib"

    5. 导入lib中的所有模块:一定要比lib上一级目录,然后:&gt;&gt;&gt; from lib import *

    【讨论】:

    • 如果您包含一个示例,您的答案会更好。
    猜你喜欢
    • 2018-06-07
    • 2021-08-15
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 2013-11-01
    • 2021-10-30
    相关资源
    最近更新 更多