From a6c1869eb22be41c2910e20814a4cd4b26183a47 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 19 Dec 2017 14:47:31 +0200 Subject: [PATCH] Depend on "zeroconf" from "contrib-pysite" --- platformio/exception.py | 7 ------- platformio/managers/core.py | 4 ++-- platformio/util.py | 7 ++++++- setup.py | 16 ---------------- 4 files changed, 8 insertions(+), 26 deletions(-) diff --git a/platformio/exception.py b/platformio/exception.py index 5f7abe7f..5c8f93a6 100644 --- a/platformio/exception.py +++ b/platformio/exception.py @@ -227,10 +227,3 @@ class CygwinEnvDetected(PlatformioException): MESSAGE = "PlatformIO does not work within Cygwin environment. "\ "Use native Terminal instead." - - -class ZeroconfIsNotInstalled(PlatformioException): - - MESSAGE = "Python multicast DNS service discovery library has not been "\ - "installed automatically. Please open terminal and run \n"\ - "> pip install zeroconf" diff --git a/platformio/managers/core.py b/platformio/managers/core.py index 5c508498..fffdd038 100644 --- a/platformio/managers/core.py +++ b/platformio/managers/core.py @@ -22,7 +22,7 @@ from platformio.managers.package import PackageManager CORE_PACKAGES = { "contrib-piohome": ">=0.5.3,<2", - "pysite-pioplus": ">=0.4.2,<2", + "contrib-pysite": ">=0.1.0,<2", "tool-pioplus": ">=0.12.1,<2", "tool-unity": "~1.20302.1", "tool-scons": "~3.20501.2" @@ -105,7 +105,7 @@ def pioplus_call(args, **kwargs): pioplus_path = join(get_core_package_dir("tool-pioplus"), "pioplus") pythonexe_path = util.get_pythonexe_path() os.environ['PYTHONEXEPATH'] = pythonexe_path - os.environ['PYTHONPYSITEDIR'] = get_core_package_dir("pysite-pioplus") + os.environ['PYTHONPYSITEDIR'] = get_core_package_dir("contrib-pysite") os.environ['PATH'] = (os.pathsep).join( [dirname(pythonexe_path), os.environ['PATH']]) util.copy_pythonpath_to_osenv() diff --git a/platformio/util.py b/platformio/util.py index 7ab4ed7a..1d9872bf 100644 --- a/platformio/util.py +++ b/platformio/util.py @@ -495,7 +495,12 @@ def get_mdns_services(): try: import zeroconf except ImportError: - raise exception.ZeroconfIsNotInstalled() + from site import addsitedir + from platformio.managers.core import get_core_package_dir + contrib_pysite_dir = get_core_package_dir("contrib-pysite") + addsitedir(contrib_pysite_dir) + sys.path.insert(0, contrib_pysite_dir) + import zeroconf class mDNSListener(object): diff --git a/setup.py b/setup.py index b0f442e0..dceee7b2 100644 --- a/setup.py +++ b/setup.py @@ -12,9 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import subprocess -import sys -from os.path import normpath from setuptools import find_packages, setup from platformio import (__author__, __description__, __email__, __license__, @@ -30,19 +27,6 @@ install_requires = [ "requests>=2.4.0,<3", "semantic_version>=2.5.0,<3" ] -zeroconf_requirement = "zeroconf<=0.19.1" - -try: - import zeroconf # pylint: disable=unused-import -except ImportError: - try: - subprocess.check_call([ - normpath(sys.executable), "-m", "pip", "install", - zeroconf_requirement - ]) - install_requires.append(zeroconf_requirement) - except: # pylint: disable=bare-except - pass setup( name=__title__,