Python从另一个文件调用函数

时间:2017-05-04 14:27:04

标签: python function

我在Windows 7 Professional上使用Python 2.7。

我正在尝试将另一个文件中保存的函数调用为“此文件的代码”。

dosomething

中找到名为anotherfile.py的函数

'anotherfile.py`与当前代码在同一目录中。

我的电话很简单:

import anotherfile

print anotherfile.dosomething

我收到错误:No module named anotherfile

问题与this post

中的问题相同

我不明白解决方案。

洞察?

谢谢。

编辑:其他问题/答案讨论重置CLASSPATH和设置PYTHONPATH。我探索了这个,但不知道该怎么做。也许相关?

4 个答案:

答案 0 :(得分:5)

指定模块然后指定文件然后导入如下:

from this_module.anotherfile import dosomething

或者如果你想要“anotherfile.py”中的所有功能

from this_module.anotherfile import *

然后你可以在没有“anotherfile”前缀的情况下调用“dosomething”命令。

答案 1 :(得分:4)

让我们在同一目录中有两个文件。文件名为main.pyanother.py

首先在another.py中编写一个方法:

def do_something():
    return "This is the do something method"

然后从main.py调用该方法。这是main.py

import another
print another.do_something()

运行main.py,您将获得如下输出:

This is the do something method

N.B。:上面的代码是在Windows 10中使用Python 2.7执行的。

答案 2 :(得分:1)

我遇到了同样的问题。经过大量试验,我最终用下面提到的解决方案解决了这个问题:

确保您的当前文件和 anotherfile.py 位于系统路径的同一位置。 假设您的 another.py 和当前文件位于以下位置:“C:/Users/ABC” 以防万一,人们不知道系统路径。在当前文件中使用以下代码:

  import sys
  print(sys.path)

  import sys
  sys.path.append('/C:/Users/ABC/')

然后您在相同的当前代码中执行以下代码:

  from another import dosomething

答案 3 :(得分:0)

我发现了这个问题。 Python正在另一个目录中查找文件。我明确地将我的工作目录设置为type Marker = |Marker static member Multiply (marker : Marker, numX : int, numY : int) = numX * numY static member Multiply (marker : Marker, numX : int64, numY : int64) = numX * numY let inline multiply x y = ((^T or ^U) : (static member Multiply : ^T * ^U * ^U -> ^S) (Marker, x, y)) multiply 5 7 multiply 5L 7L thisfile.py所在的路径,并且它可以工作。感谢您的所有快速回复。