作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以,我有两个 python 文件:
第一个“m12345.py”
def my():
return 'hello world'
第二个“1234.py”:
from m12345 import *
a = m12345.my()
print(a)
在 ipython 上我尝试执行这样的命令:
exec(open("f:\\temp\\m12345.py").read())
exec(open("f:\\temp\\1234.py").read())
第二个命令的错误是:
ImportError: No module named 'm12345'
请帮助如何将第一个文件添加为第二个文件的模块?
最佳答案
首先,如果您使用通用导入(from m12345 import *
),那么您只需调用 my()
函数,而不是 m12345.my ()
否则你会得到一个
NameError: name 'm12345' is not defined
其次,您应该在每个脚本中添加以下代码片段,以便您希望能够在其中直接运行或不直接运行它(导入时)。
if "__name__" = "__main__":
pass
PS。将其添加到第一个脚本(“m12345.py”)。PS2。避免使用通用导入方法,因为它可能会弄乱脚本的命名空间。 (因此,它不被视为最佳实践)。
编辑: m12345.py 是否位于 python 文件夹中(它安装在硬盘驱动器中的位置)?如果没有,那么您应该添加它位于 sys.path 中的目录:
import sys
sys.path.append(directory)
其中directory是m12345.py所在位置的字符串。请注意,如果您使用 Windows,则应使用 /
而不是 \
。不过,重新定位脚本会容易得多(如果可能的话)。
关于python - 如何在 ipython 中将脚本作为模块导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39820350/
我是一名优秀的程序员,十分优秀!