如何正确使用python模块

Posted

技术标签:

【中文标题】如何正确使用python模块【英文标题】:How to properly use python modules 【发布时间】:2014-09-17 03:51:16 【问题描述】:

我创建了一个名为 test.py 的测试文件(包含一个名为 test 的类)并将其保存到文档中(Mac OS X 10.9.3)

然后我尝试通过从测试导入测试写入来使用此文件。但是,我收到一条错误消息,告诉我没有名为 test 的模块。请您对这个问题有所了解。

【问题讨论】:

您尝试导入时是否在文档文件夹中? 不,我尝试在终端上导入它 你要么必须在你的 pythonpath 中有模块,要么在同一个目录中才能导入它们 我该怎么做 你不能直接 cd 到文档目录并在那里打开你的 shell 吗? 【参考方案1】:

问题在于 Documents 文件夹通常不在 PATH 或 PYTHONPATH 中,因此解释器无法看到存储在那里的脚本(除非 Documents 恰好是当前工作目录)。

我能想到两种解决方案:

    将文件 test.py 移动到 Python 路径中的某个位置。

    您可以使用此脚本找到您的 PYTHONPATH:

    import os
    try:
        user_paths = os.environ['PYTHONPATH'].split(os.pathsep)
    except KeyError:
        user_paths = []
    

    (来自 Mark Ransom 对 How do I find out my python path using python? 的回答)

    你可以找到系统路径

    import sys
    print sys.path
    

    这两个都返回一个文件夹列表。如果您将test.py 放在其中一个文件夹中,解释器就会看到它。

    例如,我通常将自定义模块安装在

    /Library/Python/2.7/site-packages
    

    然后我可以像往常一样import他们。

    手动将文档附加到您的路径。

    您可以使用sys.path.append 将目录添加到路径中。

    如果您只需要在少数几个脚本中使用test.py,那么您可以将此代码添加到您想在其中使用test.py 的每个脚本中:

    import os
    import sys
    sys.path.append(os.path.join(os.environ['HOME'], 'Documents'))
    from test import test
    

【讨论】:

以上是关于如何正确使用python模块的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 python 的 asyncio 模块正确创建和运行并发任务?

如何在其他类/模块中正确导入/使用我在 Python 中构建的类和模块? [复制]

如何在python3中正确导入同一目录下的模块

如何在 boost::python 扩展模块中正确组合 C++ 和 Python 代码?

如何在python3中正确导入同一目录下的模块

如何通过 python 与 ftdi f232rl 模块正确通信?