我想创建一个导入其他导入的文件,例如
startup.py:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('qt5agg')
...
随便写
import startup
并拥有所有这些。
有可能吗?
答案 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