【问题标题】:Calling a program from another in python在python中调用另一个程序
【发布时间】:2014-08-15 12:06:12
【问题描述】:

我是 python 编程新手,但遇到了问题。我整天都在寻找解决这个问题的方法,到目前为止我发现的任何东西都没有帮助我。我正在用 Python 编写一个时间延迟程序,但是一旦它达到延迟的输入,它就会给我一个错误。我试过在同一个程序中运行它并且它可以工作,但我希望这两个程序是分开的。

这是delay.py中的延迟函数

def delayA(ina):
    ina=float(ina)
    print("okay!")
    time.sleep(ina)
    print("done!")

这是在我的主目录中调用它

import delay.py

ina = input("Enter delay in seconds: ")
delayA(ina)

这是我一整天都收到的错误消息

Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 2218, in _find_and_load_unlocked
AttributeError: 'module' object has no attribute '__path__'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:/Python/inputcall.py", line 1, in <module>
    import delay.py
ImportError: No module named 'delay.py'; 'delay' is not a package

提前感谢您的帮助!

【问题讨论】:

  • import delay 不是 import delay.py -- 你真正想要的是:from delay import delayA -- 注意: 根据我的编辑,Python 是一种独立的语言。跨度>

标签: python call


【解决方案1】:

差不多了除了一些小错误:

delay.py:

from time import sleep


def delayA(ina):
    ina = float(ina)
    print("okay!")
    sleep(ina)
    print("done!")

ma​​in.py:

#!/usr/bin/env python

from delay import delayA


ina = input("Enter delay in seconds: ")
delayA(ina)

我发现你唯一的三个错误是:

  • delayA 函数中缺少缩进。
  • from delay import delayA -- 不是:import delay.py
  • 实际导入delayA函数。即:from foo import bar

【讨论】:

  • 并不是说它真的很重要,但是缺少缩进是将代码放入问题框中的错误,而不是代码本身的错误。非常感谢您的帮助
  • 对于 Google 员工,“import delay.py”是错误消息的实际原因——不要添加“.py”。
猜你喜欢
  • 1970-01-01
  • 2021-01-11
  • 2015-06-23
  • 2010-12-08
  • 1970-01-01
  • 1970-01-01
  • 2018-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多