python - 将 "pyc"导入现有的 python 脚本

标签 python import module namespaces maya

我正在尝试添加一个目录,我可以在其中抛出一些 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/

    相关文章:

    python - 使用Integrate.solve_ivp在Python中绘制轨道

    python - ImportError,在谷歌应用引擎中使用 pytz

    python - Objective-C 字符串操作

    mysql - 将数据从 My Sql 导入到 Sql Server 的最简单方法

    python - 跟踪 Python 导入

    c# - MySQL 跳过空字符串查询?

    Linux 内核检查 VID/PID 号?

    python - pandas 的开发版本给出 importerror : C extension: 'hashtable' not built on python 3. 4 (anaconda)

    java - 如何从代码启动和使用 Apache Felix?

    Yii 包含 CSS 和 javascript 文件