【问题标题】:importing a python module into the python interpreter将 python 模块导入 python 解释器
【发布时间】:2017-03-05 08:08:45
【问题描述】:

我是 python 新手,正在使用 Learn Python the Hard Way 一书。书中的练习 25 要求我们将 python 模块导入 python 解释器。

我使用“/usr/bin/python”来调用解释器:

S-MacBook-Air:~ s$ /usr/bin/python
Python 2.7.10 (default, Oct 23 2015, 19:19:21) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

但导入文件时出现错误:

>import ex26_test
>>Traceback (most recent call last):

  >>File "< stdin >", line 1, in < module >

>ImportError: No module named ex26_test

文件位于以下文件夹中 (~/documents/1Webdev/LPTHW/ex26_test.py)

请问如何将模块“ex26_test”导入解释器?

提前谢谢你! 标清

【问题讨论】:

  • 我看不出你的语法有问题,只要确保你的 PYTHONPATH 全局变量有这个模块的路径

标签: python-2.7


【解决方案1】:

当一个名为 spam 的模块被导入时,解释器首先搜索 对于具有该名称的内置模块。如果没有找到,然后搜索 对于一个名为 spam.py 的文件,该文件位于 变量 sys.path。 sys.path 从这些位置初始化:

1) 包含输入脚本的目录(或当前目录 当没有指定文件时)。

2) PYTHONPATH(目录名称列表, 使用与 shell 变量 PATH 相同的语法)。 3) 安装依赖的默认值。

python module import documentation

所以你可以 cd 到 ~/documents/1Webdev/LPTHW 并从那里运行 python。

【讨论】:

    【解决方案2】:

    在 sys.path 中添加了模块路径

    import sys
    sys.path.append(r'~/documents/1Webdev/LPTHW')
    import ex26_test
    

    【讨论】:

      【解决方案3】:

      您需要在文件所在的同一文件夹中打开 python,因为 python 无法看到不在 sys.path 中的文件夹。当然有办法将该文件夹临时或永久添加到sys.path,我稍后会展示

      解决方案 1:移动到该文件夹​​,使用 de cd(更改目录)命令执行此操作,应该类似于以下内容:

      $ cd ~/documents/1Webdev/LPTHW
      $ ~/documents/1Webdev/LPTHW: python
      Python 2.7.10 (default, Oct 23 2015, 19:19:21) 
      [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-)] on darwin
      Type "help", "copyright", "credits" or "license" for more information.
      >>> import ex26_test
      >>>
      

      请注意,如果您的 python 配置正确,您应该可以通过输入 python 来调用它

      解决方案 2:将该文件夹添加到 sys.path 以执行此操作,打开 python 并执行以下操作

      >>> import sys
      >>> sys.path.append("~/documents/1Webdev/LPTHW")
      >>> import ex26_test
      >>>
      

      这是临时解决方案,但无论您在哪里打开 python,它都可以工作

      解决方案3:将该文件夹永久添加到sys.path,为此您需要修改/创建环境变量PYTHONPATH,我不知道如何在mac中执行此操作,但这不应该那么困难,在这方面,其中一些应该会有所帮助:https://stackoverflow.com/search?q=pythonpath+on+mac 特别是这看起来是正确的:How can I edit PYTHONPATH on a Mac?

      【讨论】:

        【解决方案4】:

        好的,这应该很容易,但以前的答案并不能提供所有解决方案。你可以使用 sys.path 函数查看 python 在哪里找到它的模块,但是在你可以使用它之前,你必须导入模块 sys :

        >>> import sys
        >>> print(sys.path)
        

        接下来,您必须使用命令 path.append 添加模块所在的文件夹

        >>> sys.path.append("~/documents/1Webdev/LPTHW")
        

        并加载您的模块:

        >>> from ex26_test import *
        

        现在您可以访问 ex26_test.py 文件中定义的所有函数。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-06-25
          • 1970-01-01
          • 1970-01-01
          • 2016-11-30
          • 2014-05-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多