有没有办法将多个 python 文件导入一个主 python 文件?
我有一堆py文件,每个文件都必须在主python文件中运行,并且数据被保存到json文件中。
这就是我尝试过的,它给了我一个错误。
import light.py as light
错误:
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 2218, in _find_and_load_unlocked
AttributeError: 'module' object has no attribute '__path__'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/pi/Desktop/majorproject/pillar1.py", line 8, in <module>
import sensorkey.py as sensorkey
ImportError: No module named 'sensorkey.py'; 'sensorkey' is not a package
我还尝试指定 py 文件的路径,但它也不起作用,并且不断给出无效的语法错误。
import /home/pi/Desktop/json/light.py as light
更新:我设法修复了导入错误,但现在,在导入此 light.py 文件后,我必须将字典(键(中的某些键打印到这个新文件中,然后将其导出到 json 文件中。我目前正在使用 TinyDB 来执行此操作。这是我的代码:
from tinydb import TinyDB, Query
import json
from light import key
with open("/home/pi/Desktop/json/sensortestest.json", 'w+'):
db = TinyDB('/home/pi/Desktop/json/sensortestest.json')
table = db.table('Light')
db.insert_multiple([{'Key 1' :key[lightkey]}, {'Key 2' : key[lightkeyID]}])
错误:
Traceback (most recent call last):
File "/home/pi/Desktop/majorproject/testertestest.py", line 12, in <module>
db.insert_multiple([{'Key 1' :key[lightkey]}, {'Key 2' : key[lightkeyID]}])
名称错误:未定义名称"灯键">
问题是我已经在其自己的文件中定义了"灯光键"。
要包含字典,如果您的文件位置位于不同的目录中,则可以执行此操作(请注意 path.append,如@Coldspeed所述(:
import sys
sys.path.append("path/foo/bar/")
from light import *
如果它与当前目录位于同一目录中,您可以执行以下操作:
from light import *
导入your_filename.py
的语法,假设它在同一目录中,是
import your_filename
在您的情况下,这将是
import light
请注意没有.py
。
如果您的文件位于其他目录中,则需要执行以下操作:
import sys
sys.path.append('path/to/dir/containing/your_filename.py')
import your_filename
请注意,附加到sys.path
是危险的,除非您知道自己在做什么,否则不应这样做。
在导入的官方文档中阅读更多信息。