我正在尝试添加一个目录,我可以在其中抛出一些 pyc 文件并从我的脚本中调用它们。
基本上它是一个独立的 python 脚本,里面有一堆 def,
我希望 pyc 文件的名称是执行的命令。
到目前为止,这工作正常,除了一件事,我的 GUI 按钮正在调用 defs
并且 python 无法识别它们,因为 namespace 是错误的。
如何从脚本中导入它,就好像它是像这样导入的一样:
from Module import as *
我正在运行此代码以加载它:
def importModule(ModPath):
fullModName= ModPath.split('\\')[-1]
commandtorun=fullModName.split('.')[0]
mod_name,file_ext = os.path.splitext(os.path.split(ModPath)[-1])
if file_ext.lower() == '.py':
py_mod = imp.load_source(mod_name, ModPath)
elif file_ext.lower() == '.pyc':
py_mod = imp.load_compiled(mod_name, ModPath)
exec "from %s import *"%(commandtorun)
exec "%s()" % (commandtorun)
我知道我可以写: module.somefunction() ,但这不是我需要的......
我需要“模块”独立工作..
请帮忙,这让我发疯了,python 是一种非常棒的语言,我不敢相信你不能从脚本中获取脚本并让它工作。
请指教。
最佳答案
exec
中使用(Python 中很少见的)分号打个电话exec
在您拥有的两个中 import_module(name, package)
在 importlib 关于python - 将 "pyc"导入现有的 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21215582/