Python - 通过 运行 脚本导入包

Python - Importing packages by running a script

我有一个脚本正在导入很多包,包括 import numpy as np

我有很多脚本需要导入所有这些包(包括我自己的一些)。为了让我的生活更轻松,我在我的路径中有一个名为 mysetup.py 的文件来导入所有包。它在名为“import numpy as np”的函数中包含该语句。

我运行“main.py”。 运行如下

from mysetup import *
import_my_stuff()
np.pi()

"mysetup.py"

def import_my_stuff(): 
   import numpy as np
return 

但是,我无法在“main.py”中使用 numpy - 此代码将失败。关于原因有什么建议吗?

您面临的问题是 Python 的一个非常重要的特性的结果:namespaces.

基本上,在您的情况下,当您在 (import_my_stuff) 函数中执行 (numpy) 导入时,您正在定义代码对象 numpy/np 函数命名空间中。 (范围,如果你愿意的话)。

要解决您的问题(您的做法;不是唯一的方法),您应该简单地在模块顶层导入所有内容(没有封装导入的函数) :

mysetup.py:

import numpy as np
# other modules... 

main.py:

from mysetup import *
np.pi()

函数中的导入不是最好的主意。 但是您可以在 mysetup.py

的顶级代码中定义您需要的任何导入
import numpy as np

然后当您从 mysetup 导入 * 时它将可用

from mysetup import *
print(np.pi)