我在Windows 7 Professional上使用Python 2.7。
我正在尝试将另一个文件中保存的函数调用为“此文件的代码”。
在dosomething
anotherfile.py
的函数
'anotherfile.py`与当前代码在同一目录中。
我的电话很简单:
import anotherfile
print anotherfile.dosomething
我收到错误:No module named anotherfile
问题与this post
中的问题相同我不明白解决方案。
洞察?
谢谢。
编辑:其他问题/答案讨论重置CLASSPATH和设置PYTHONPATH。我探索了这个,但不知道该怎么做。也许相关?
答案 0 :(得分:5)
指定模块然后指定文件然后导入如下:
from this_module.anotherfile import dosomething
或者如果你想要“anotherfile.py”中的所有功能
from this_module.anotherfile import *
然后你可以在没有“anotherfile”前缀的情况下调用“dosomething”命令。
答案 1 :(得分:4)
让我们在同一目录中有两个文件。文件名为main.py
和another.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
所在的路径,并且它可以工作。感谢您的所有快速回复。