diff --git a/README.md b/README.md index 0903234878..8c466353b6 100644 --- a/README.md +++ b/README.md @@ -22,4 +22,4 @@ Currently, Wox support using C# and Python to write your plugins. Please refer t Share plugin ========= -Share your plugin through WoxPlugins. After you upload your plugin, other uses can download or search your plugin through `plugin` command (this is a plugin for plugin management, which is one of the default plugins inside Wox). +Share your plugin through WoxPlugins. After you upload your plugin, other uses can download or search your plugin through `plugin` command (this is a plugin for plugin management, which is one of the default plugins inside Wox). diff --git a/Wox/PluginLoader/PythonPluginLoader.cs b/Wox/PluginLoader/PythonPluginLoader.cs index 5c7a851ca0..d8b2c5db8f 100644 --- a/Wox/PluginLoader/PythonPluginLoader.cs +++ b/Wox/PluginLoader/PythonPluginLoader.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Threading; using Python.Runtime; using Wox.Plugin; +using Wox.Helper; namespace Wox.PluginLoader { @@ -11,6 +12,8 @@ namespace Wox.PluginLoader { public override List LoadPlugin() { + if (!CheckPythonEnvironmentInstalled()) return new List(); + List plugins = new List(); List metadatas = pluginMetadatas.Where(o => o.Language.ToUpper() == AllowedLanguage.Python.ToUpper()).ToList(); foreach (PluginMetadata metadata in metadatas) @@ -26,5 +29,18 @@ namespace Wox.PluginLoader return plugins; } + + private bool CheckPythonEnvironmentInstalled() { + try + { + PythonEngine.Initialize(); + PythonEngine.Shutdown(); + } + catch { + Log.Error("Could't find python environment, all python plugins disabled."); + return false; + } + return true; + } } }