【问题标题】:importing a module in Idle shell在 Idle shell 中导入模块
【发布时间】:2011-12-19 18:45:02
【问题描述】:

我正在尝试学习 python,但在导入模块时遇到问题。 我有一个 .pyc 文件,我正在尝试将其导入到名为 dfa.pyc 的空闲 shell 中

我有一个名为 xyz 的文件夹中的文件。 我使用以下方法导航到此文件夹:

    os.chdir('/Users/xxx/Desktop/xyz')

所以现在,如果我尝试运行命令:

    from dfa import *

我得到错误:

    ImportError: No module named dfa

如果我运行命令:

    os.path.isfile('dfa.pyc') 

它返回真。

谁能解释我如何导入 dfa.pyc 文件?

谢谢

【问题讨论】:

  • sys.path 的值是多少?
  • ['/Users/xxx/Documents', '/Library/Frameworks/Python.framework/Versions/3.2/lib/python32.zip', '/Library/Frameworks/Python.framework/Versions /3.2/lib/python3.2', '/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/plat-darwin', '/Library/Frameworks/Python.framework/Versions/3.2/lib /python3.2/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages'] 这是你要的吗?如果我运行 sys.path 命令,这就是我得到的值。谢谢
  • stackoverflow.com/questions/279237/…,试试这些建议?

标签: python python-3.x pyc


【解决方案1】:

我认为没有根据您对 chdir 的操作加载 python 模块。模块从您启动 python shell 的文件夹和 PYTHONPATH 中的文件夹加载。

如果您想动态加载模块,您可以查看imp.loadmodule(页面底部的示例)。

【讨论】:

    【解决方案2】:

    您可以通过执行添加到代码中的 PYTHONPATH

    sys.path.append('<newpath'>)
    from dfa import *
    

    我认为更改当前目录不会对导入过程产生任何影响,即使有影响,我也不确定您是否希望这样做。

    【讨论】:

      【解决方案3】:

      来自 Brian Fitzgerald,Loading (and unloading) Python modules

      " ...这要“取消导入”

      del sys.modules["package"]
      del package
      

      "

      【讨论】:

        猜你喜欢
        • 2016-12-12
        • 1970-01-01
        • 1970-01-01
        • 2019-01-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多