如何创建导入其他导入的python脚本

时间:2019-02-01 11:49:03

标签: python

我想创建一个导入其他导入的文件,例如

startup.py:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('qt5agg')
...

随便写

import startup

并拥有所有这些。

有可能吗?

5 个答案:

答案 0 :(得分:5)

不建议出于可读性考虑,但您可以这样写:

from startup import *

要使用np等的文件中。

答案 1 :(得分:2)

查看this较旧的StackOverflow帖子,其中详细介绍了实现所需内容的多种方法,尤其是“ Eric Leschinski”的出色评论。

我首先要检出的最简单的解决方案是创建一个新目录,并在其中创建一个__init__.py文件,将其声明为一个包。

您的这个虚拟“包”将作为输入处理程序,然后从您的主脚本开始from root.parent.folder.file import class/variable/whatever。主要缺点是,这不允许非相对路径,但是如果所有项目都是独立的,则可以。

答案 2 :(得分:2)

我建议您在星号导入时明确指定要导入的模块:)

尝试以下示例:

#example.py


import time
import random
import collections

__all__ = ['time', 'random']

$ python
>>> from example import *
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'random', 'time']

看看它如何不导入collections模块,因为我没有要求它:)

答案 3 :(得分:1)

您可以这样做

startup.py

import numpy as np
import matplotlib.pyplot as plt
import matplotlib

np = np

plt = plt
matplotlib = matplotlib

main.py

from startup import *

plt.show()

在我看来,这有点丑陋,但是可以。

答案 4 :(得分:1)

您可以尝试以下操作:

让文件1为 abc.py

import pandas as pd
import numpy as np

让文件2为 main.py

import abc

# Use pandas import as temp.pd
df = temp.pd.DataFrame({'A': [1,2,3], 'B': [2,3,4]})
print(df)

输出:

   A  B                                                                                                                                                               
0  1  2                                                                                                                                                               
1  2  3                                                                                                                                                               
2  3  4