【发布时间】:2018-04-10 08:30:16
【问题描述】:
我正在尝试将包含多个已定义函数的 python 脚本导入到不同的 python 脚本using this approach via SO。由于我要导入的脚本定义了许多函数(其中一些嵌套在其他函数中),我宁愿导入整个脚本而不是单独导入每个函数。我在下面使用一个更简单的示例。
假设我的desktop 上有一个名为'workspace' 的文件夹。在文件夹'workspace' 中,有一个名为'pre.py' 的脚本,其中包含一个函数(定义如下)和一个名为'__init__.py' 的空白文件。
def get_g(x):
""" Sample Function """
if isinstance(x, list):
res = [xi**2 for xi in x]
else:
res = x**2
return res
在同一'workspace'文件夹中,有一个名为'post.py'的脚本,我想在其中导入'pre.py'中定义的所有函数。 'post.py' 的示例脚本如下。
尝试 #1:
import matplotlib.pyplot as plt
def get_my_imports(script_name, fileloc="/Users/myname/Desktop/workspace"):
""" Import Sample Function (defined above) """
from fileloc import script_name
get_my_imports('pre.py')
x = np.linspace(1, 10, 100)
y = get_g(x)
plt.plot(x, y)
plt.show()
>> ImportError: No module named 'fileloc'
尝试 #2:
import matplotlib.pyplot as plt
from "/Users/myname/Desktop/workspace" import 'tst.py' ## error in this line
x = np.linspace(1, 10, 100)
y = get_g(x)
plt.plot(x, y)
plt.show()
>> SyntaxError: invalid syntax
在我的第一次尝试中,我试图概括导入 py 脚本的方法。但是解释器认为fileloc 是一个可导入的模块,而不是我的意图。我的第二次尝试告诉我,我不了解如何做到这一点的基本知识。如何调整这种方法以使其正常工作? (如果它与文件位置相关,我使用的是苹果笔记本电脑。)
【问题讨论】:
-
查看链接的欺骗。 ^
标签: python function import python-import importerror