にWindows上で作品をインポートではなく:などは、プログラムで次のようにだから私は、ディレクトリツリーを持っているLinuxの
pluginlist.py
plugins/
__init__.py
plugin1.py
plugin2.py
...
そしてplugin1のそれぞれから同じ名前の辞書を連結したい、plugin2で、
(pluginlist.pyから)次のように私はこれをやっている方法は次のとおりです。
import os
pluginFolderName = "plugins"
pluginFlag = "##&plugin&##"
commands = {}
os.chdir(os.path.abspath(pluginFolderName))
for file in os.listdir(os.getcwd()):
if os.path.isfile(file) and os.path.splitext(file)[1] == ".py":
fileo = open(file, 'r')
firstline = fileo.readline()
if firstline == "##&plugin&##\n":
plugin_mod = __import__("plugins.%s" % os.path.splitext(file)[0])
import_command = "plugin_commands = plugin_mod.%s" % os.path.splitext(file)[0]
exec import_command
commands = dict(commands.items() + plugin_commands.commands.items())
print commands
(印刷はテスト目的のためにそこにあるコマンド)
Windows上で実行すると適切なコマンド辞書が得られますが、それをLinux(Ubuntu Server)で実行すると空の辞書が得られます。
'exec'ではなく' plugin_commands = getattr(plugin_mod、os.path.splitext(file)[0]) 'を使用できませんか? – Blender