提交 82120c5c 编写于 作者: H Hui Zhang

setup.py install cpp deps

上级 4081633b
...@@ -19,12 +19,12 @@ tqdm ...@@ -19,12 +19,12 @@ tqdm
typeguard typeguard
visualdl==2.2.0 visualdl==2.2.0
yacs yacs
numpy numpy==1.20.0
numba
nltk nltk
inflect inflect
librosa librosa
unidecode unidecode
numba
llvmlite llvmlite
matplotlib matplotlib
pandas pandas
...@@ -39,4 +39,4 @@ timer ...@@ -39,4 +39,4 @@ timer
pyworld pyworld
jieba jieba
phkit phkit
yq yq
\ No newline at end of file
[build_ext]
debug=0
[metadata]
license_file = LICENSE
description-file = README.md
[magformat]
formatters=yapf
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
import io import io
import os import os
import re import re
import sys
from pathlib import Path from pathlib import Path
import contextlib import contextlib
import inspect import inspect
...@@ -31,10 +32,8 @@ HERE = Path(os.path.abspath(os.path.dirname(__file__))) ...@@ -31,10 +32,8 @@ HERE = Path(os.path.abspath(os.path.dirname(__file__)))
def pushd(new_dir): def pushd(new_dir):
old_dir = os.getcwd() old_dir = os.getcwd()
os.chdir(new_dir) os.chdir(new_dir)
try: yield
yield os.chdir(old_dir)
finally:
os.chdir(old_dir)
def read(*names, **kwargs): def read(*names, **kwargs):
...@@ -43,7 +42,7 @@ def read(*names, **kwargs): ...@@ -43,7 +42,7 @@ def read(*names, **kwargs):
return fp.read() return fp.read()
def check_call(cmd: str, shell=True, executable=None): def check_call(cmd: str, shell=False, executable=None):
try: try:
sp.check_call(cmd.split(), sp.check_call(cmd.split(),
shell=shell, shell=shell,
...@@ -53,49 +52,55 @@ def check_call(cmd: str, shell=True, executable=None): ...@@ -53,49 +52,55 @@ def check_call(cmd: str, shell=True, executable=None):
f"{__file__}:{inspect.currentframe().f_lineno}: CMD: {cmd}, Error:", f"{__file__}:{inspect.currentframe().f_lineno}: CMD: {cmd}, Error:",
e.output, e.output,
file=sys.stderr) file=sys.stderr)
raise e
def _pre_install(): def _pre_install(install_lib_dir):
# apt # apt
check_call("apt-get update -y") check_call("apt-get update -y", False)
check_call("apt-get install -y " + 'vim tig tree sox pkg-config ' + check_call("apt-get install -y " + 'vim tig tree sox pkg-config ' +
'libsndfile1 libflac-dev libogg-dev ' + 'libsndfile1 libflac-dev libogg-dev ' +
'libvorbis-dev libboost-dev swig python3-dev ') 'libvorbis-dev libboost-dev swig python3-dev ', False)
print("apt install.")
# tools/make # tools/make
tool_dir = HERE / "tools" tool_dir = HERE / "tools"
# for f in tool_dir.glob("*.done"): for f in tool_dir.glob("*.done"):
# f.unlink() f.unlink()
with pushd(tool_dir): with pushd(tool_dir):
check_call("make") check_call("make")
print("tools install.")
# install autolog
tools_extrs_dir = HERE / 'tools/extras'
with pushd(tools_extrs_dir):
check_call(f"bash -e install_autolog.sh")
print("autolog install.")
def _post_install(install_lib_dir):
# ctcdecoder # ctcdecoder
ctcdecoder_dir = HERE/ 'deepspeech/decoders/ctcdecoder/swig' ctcdecoder_dir = HERE/ 'deepspeech/decoders/ctcdecoder/swig'
with puahd(ctcdecoder_dir): with pushd(ctcdecoder_dir):
check_call("setup.sh") check_call("bash -e setup.sh")
print("ctcdecoder install.")
def _post_install(install_lib_dir):
# install third_party # install third_party
third_party_dir = HERE / 'third_party' third_party_dir = HERE / 'third_party'
with puahd(third_party_dir): with pushd(third_party_dir):
check_call("bash install.sh") check_call("bash -e install.sh")
print("third_party install.")
# install autolog
tools_extrs_dir = HERE / 'tools/extras'
with puahd(tools_extrs_dir):
check_call("bash install_autolog.sh")
class DevelopCommand(develop): class DevelopCommand(develop):
def run(self): def run(self):
_pre_install() self.execute(_pre_install, (self.install_lib, ), msg="Pre Install...")
develop.run(self) develop.run(self)
self.execute(_post_install, (self.install_lib, ), msg="Post Install...") self.execute(_post_install, (self.install_lib, ), msg="Post Install...")
class InstallCommand(install): class InstallCommand(install):
def run(self): def run(self):
_pre_install() self.execute(_pre_install, (self.install_lib, ), msg="Pre Install...")
install.run(self) install.run(self)
self.execute(_post_install, (self.install_lib, ), msg="Post Install...") self.execute(_post_install, (self.install_lib, ), msg="Post Install...")
......
#!/bin/bash #!/bin/bash
#install auto-log #install auto-log
python -c "import auto_log" echo "Install auto_log into default system path"
test -d AutoLog || git clone https://github.com/LDOUBLEV/AutoLog
if [ $? != 0 ]; then if [ $? != 0 ]; then
info_msg "Install auto_log into default system path" error_msg "Download auto_log failed !!!"
test -d AutoLog || git clone https://github.com/LDOUBLEV/AutoLog exit 1
if [ $? != 0 ]; then fi
error_msg "Download auto_log failed !!!"
exit 1 pushd AutoLog
fi pip install -r requirements.txt
cd AutoLog python setup.py install
pip install -r requirements.txt popd
python setup.py install
cd .. rm -rf AutoLog
rm -rf AutoLog
fi
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册