From eac982cc6b575795a0939bf7c96c8f86a1bbf48f Mon Sep 17 00:00:00 2001 From: singein Date: Tue, 30 Mar 2021 11:46:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=BC=E5=8C=85=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DjangoAppCenter/cli.py | 22 +--------------------- DjangoAppCenter/packages/models.py | 2 +- DjangoAppCenter/utils.py | 21 +++++++++++++++++++++ 3 files changed, 23 insertions(+), 22 deletions(-) create mode 100644 DjangoAppCenter/utils.py diff --git a/DjangoAppCenter/cli.py b/DjangoAppCenter/cli.py index 3e83919..5e16710 100644 --- a/DjangoAppCenter/cli.py +++ b/DjangoAppCenter/cli.py @@ -1,36 +1,16 @@ import os -import re import sys import fire from DjangoAppCenter.settings.loader import init_profile, CWD_SETTINGS_PATH from DjangoAppCenter.settings.loader import load_settings_from_file +from DjangoAppCenter.utils import get_python_version sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) sys.path.append(os.path.abspath(os.getcwd())) -def get_python_version(): - import subprocess - p = subprocess.Popen(['python', '--version'], - stdout=subprocess.PIPE, stderr=subprocess.PIPE) - - stdout, stderr = p.communicate() - - # 为了兼容 python 2.x 中 python --version 输出到 stderr 的bug - # https://bugs.python.org/issue18338 - stdout = stderr if not stdout else stdout - - version = re.findall(r'([0-9]+)\.([0-9]+)\.([0-9\+]+)', str(stdout))[0] - - import platform - if (not platform.system() == 'Windows') and version[0] == '2': - return 'python3' - - return 'python' - - def dev(): """run django in debug mode""" os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DjangoAppCenter.settings') diff --git a/DjangoAppCenter/packages/models.py b/DjangoAppCenter/packages/models.py index a54dd40..9c13f10 100644 --- a/DjangoAppCenter/packages/models.py +++ b/DjangoAppCenter/packages/models.py @@ -6,7 +6,7 @@ from DjangoAppCenter.extensions.fields.snowflake import SnowFlakeField from DjangoAppCenter.settings.loader import merge_profile -from cli import get_python_version +from DjangoAppCenter.utils import get_python_version logger = logging.getLogger("admin") diff --git a/DjangoAppCenter/utils.py b/DjangoAppCenter/utils.py new file mode 100644 index 0000000..7076f7f --- /dev/null +++ b/DjangoAppCenter/utils.py @@ -0,0 +1,21 @@ +import re + + +def get_python_version(): + import subprocess + p = subprocess.Popen(['python', '--version'], + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + stdout, stderr = p.communicate() + + # 为了兼容 python 2.x 中 python --version 输出到 stderr 的bug + # https://bugs.python.org/issue18338 + stdout = stderr if not stdout else stdout + + version = re.findall(r'([0-9]+)\.([0-9]+)\.([0-9\+]+)', str(stdout))[0] + + import platform + if (not platform.system() == 'Windows') and version[0] == '2': + return 'python3' + + return 'python'