You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by hx...@apache.org on 2022/09/02 06:27:39 UTC
[flink-ml] 01/02: [FLINK-29115] Improve Python installation process
This is an automated email from the ASF dual-hosted git repository.
hxb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink-ml.git
commit 0166a4c28579fafb1e33e622758c74fcd90943a1
Author: yunfengzhou-hub <yu...@outlook.com>
AuthorDate: Tue Aug 30 19:56:44 2022 +0800
[FLINK-29115] Improve Python installation process
This closes #149.
---
.github/workflows/java8-build.yml | 15 +++++++++++++++
.github/workflows/python-checks.yml | 15 +++++++++++++++
.../java/org/apache/flink/ml/util/StageAnalyzer.java | 4 ++--
flink-ml-python/MANIFEST.in | 1 +
flink-ml-python/setup.py | 16 +++++++++++++---
5 files changed, 46 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/java8-build.yml b/.github/workflows/java8-build.yml
index 909c682..a593520 100644
--- a/.github/workflows/java8-build.yml
+++ b/.github/workflows/java8-build.yml
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
name: Java 8 Build
on: [push, pull_request]
diff --git a/.github/workflows/python-checks.yml b/.github/workflows/python-checks.yml
index 57ec84b..b98644b 100644
--- a/.github/workflows/python-checks.yml
+++ b/.github/workflows/python-checks.yml
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
name: Python Checks
on:
diff --git a/flink-ml-lib/src/test/java/org/apache/flink/ml/util/StageAnalyzer.java b/flink-ml-lib/src/test/java/org/apache/flink/ml/util/StageAnalyzer.java
index 374d5e3..34e7aef 100644
--- a/flink-ml-lib/src/test/java/org/apache/flink/ml/util/StageAnalyzer.java
+++ b/flink-ml-lib/src/test/java/org/apache/flink/ml/util/StageAnalyzer.java
@@ -113,8 +113,8 @@ public class StageAnalyzer {
} catch (Throwable t) {
System.err.println(
String.format(
- "Failed to load class {} while analyzing flink-ml-lib JAR because of %s.",
- clazz.getCanonicalName()));
+ "Failed to load class %s while analyzing flink-ml-lib JAR because of %s.",
+ clazz.getCanonicalName(), t));
return false;
}
}
diff --git a/flink-ml-python/MANIFEST.in b/flink-ml-python/MANIFEST.in
index 2635bfb..b52c513 100644
--- a/flink-ml-python/MANIFEST.in
+++ b/flink-ml-python/MANIFEST.in
@@ -17,5 +17,6 @@
################################################################################
global-exclude *.py[cod] __pycache__ .DS_Store
+include deps/lib/*.jar
recursive-include deps/examples *.py
include README.md
diff --git a/flink-ml-python/setup.py b/flink-ml-python/setup.py
index b4047ab..5e0f7de 100644
--- a/flink-ml-python/setup.py
+++ b/flink-ml-python/setup.py
@@ -23,7 +23,7 @@ from shutil import copytree, rmtree
from setuptools import setup
-if sys.version_info < (3, 6) or sys.version_info > (3, 8):
+if sys.version_info < (3, 6) or sys.version_info >= (3, 9):
print("Only Python versions between 3.6 and 3.8 (inclusive) are supported for Flink ML. "
"The current Python version is %s." % python_version(), file=sys.stderr)
sys.exit(-1)
@@ -55,6 +55,7 @@ with io.open(os.path.join(this_directory, 'README.md'), 'r', encoding='utf-8') a
TEMP_PATH = "deps"
+LIB_TEMP_PATH = os.path.join(TEMP_PATH, "lib")
EXAMPLES_TEMP_PATH = os.path.join(TEMP_PATH, "examples")
in_flink_ml_source = os.path.isfile("../flink-ml-core/src/main/java/org/apache/flink/ml/api/"
@@ -69,13 +70,19 @@ try:
file=sys.stderr)
sys.exit(-1)
flink_ml_version = VERSION.replace(".dev0", "-SNAPSHOT")
+ FLINK_ML_HOME = os.path.abspath(
+ "../flink-ml-dist/target/flink-ml-%s-bin/flink-ml-%s"
+ % (flink_ml_version, flink_ml_version))
FLINK_ML_ROOT = os.path.abspath("..")
+ LIB_PATH = os.path.join(FLINK_ML_HOME, "lib")
EXAMPLES_PATH = os.path.join(this_directory, "pyflink/examples")
- try:
+ if getattr(os, "symlink", None) is not None:
+ os.symlink(LIB_PATH, LIB_TEMP_PATH)
os.symlink(EXAMPLES_PATH, EXAMPLES_TEMP_PATH)
- except BaseException: # pylint: disable=broad-except
+ else:
+ copytree(LIB_PATH, LIB_TEMP_PATH)
copytree(EXAMPLES_PATH, EXAMPLES_TEMP_PATH)
PACKAGES = ['pyflink',
@@ -88,12 +95,15 @@ try:
'pyflink.ml.lib.feature',
'pyflink.ml.lib',
'pyflink.ml.util',
+ 'pyflink.lib',
'pyflink.examples']
PACKAGE_DIR = {
+ 'pyflink.lib': TEMP_PATH + '/lib',
'pyflink.examples': TEMP_PATH + '/examples'}
PACKAGE_DATA = {
+ 'pyflink.lib': ['*.jar'],
'pyflink.examples': ['*.py', '*/*.py']}
setup(