Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

awsのsagemakerにて、pyopenjtalkがインストールできません #34

Closed
masahiroview opened this issue Aug 1, 2022 · 2 comments · Fixed by #60
Closed

awsのsagemakerにて、pyopenjtalkがインストールできません #34

masahiroview opened this issue Aug 1, 2022 · 2 comments · Fixed by #60

Comments

@masahiroview
Copy link

masahiroview commented Aug 1, 2022

初めまして。masahiroviewと申します。
pyopenjtalkを用いて、テキストの日本語合成システムを構築しております。
インストール時にエラーが発生したため、ご質問させていただいた次第です。

●環境概要:aws、sagemakerのJupyterノートブックにて構築。

●インストールコマンド、エラーメッセージ
!pip install pyopenjtalk

エラーメッセージーーーーーーーーーーーーーーーーーー
Looking in indexes: https://pypi.org/simple, https://pip.repos.neuron.amazonaws.com/
Collecting ttslearn
Using cached ttslearn-0.2.2.tar.gz (295 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting hydra-core>=1.1.0
Using cached hydra_core-1.2.0-py3-none-any.whl (151 kB)
Requirement already satisfied: tqdm in /home/ec2-user/anaconda3/envs/python3/lib/python3.8/site-packages (from ttslearn) (4.62.3)
Collecting pyopenjtalk>=0.1.0
Using cached pyopenjtalk-0.2.0.tar.gz (1.5 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... error
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [23 lines of output]
Traceback (most recent call last):
File "/usr/local/bin/cmake", line 5, in
from cmake import cmake
ModuleNotFoundError: No module named 'cmake'
Traceback (most recent call last):
File "/home/ec2-user/anaconda3/envs/python3/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in
main()
File "/home/ec2-user/anaconda3/envs/python3/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/home/ec2-user/anaconda3/envs/python3/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 130, in get_requires_for_build_wheel
return hook(config_settings)
File "/tmp/pip-build-env-slvgpo17/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 162, in get_requires_for_build_wheel
return self._get_build_requires(
File "/tmp/pip-build-env-slvgpo17/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 143, in _get_build_requires
self.run_setup()
File "/tmp/pip-build-env-slvgpo17/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 267, in run_setup
super(_BuildMetaLegacyBackend,
File "/tmp/pip-build-env-slvgpo17/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 158, in run_setup
exec(compile(code, file, 'exec'), locals())
File "setup.py", line 154, in
File "/home/ec2-user/anaconda3/envs/python3/lib/python3.8/subprocess.py", line 448, in check_returncode
raise CalledProcessError(self.returncode, self.args, self.stdout,
subprocess.CalledProcessError: Command '['cmake', '..', '-DHTS_ENGINE_INCLUDE_DIR=.', '-DHTS_ENGINE_LIB=dummy']' returned non-zero exit status 1.
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
WARNING: You are using pip version 22.0.4; however, version 22.2.1 is available.
You should consider upgrading via the '/home/ec2-user/anaconda3/envs/python3/bin/python -m pip install --upgrade pip' command.
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー

エラーメッセージを参考に、cmakeのアップデートを試したのですが、改善しませんでした。

●以下、関連のありそうな情報を記載します。

コマンド
!python --version
!gcc -v
!cmake --version

以下、ログ出力ーーーーーーーーーーーーーーーーーー
Python 3.8.12
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --enable-libmpx --enable-libsanitizer --enable-gnu-indirect-function --enable-libcilkrts --enable-libatomic --enable-libquadmath --enable-libitm --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 7.3.1 20180712 (Red Hat 7.3.1-13) (GCC)
cmake version 3.22.3
CMake suite maintained and supported by Kitware (kitware.com/cmake).
ーーーーーーーーーーーーーーーーーーーーーーーーー

解決方法をご存知でしたら、伺えますと幸いです。
github上での質問をするのが、今回初めてですので、至らぬ点もあるかもしれません。
お忙しいところ恐縮ですが、ご回答いただけますと幸いです。

@atodniAr
Copy link

atodniAr commented Mar 8, 2023

I had same issue on Ubuntu 18.04. cmake --version works as wanted but setup.py throws no cmake module error.
This is another issue with same error on windows #33

My solution is:

  1. Install cmake via conda instead of pip. conda install cmake -y This resolved the strange no cmake module error, and will ask for g++ instead.
  2. (Linux) apt-get install -y build-essential gcc && pip install cython. I had no problem thereafter.

I've tried some other approaches without using conda to install cmake but failed with no luck. E.g. soft link $CONDA_PREFIX/bin/cmake to /usr/bin/cmake. Nothing changed.

@bachelorwang
Copy link

I found out that this issue is actually caused by pip's cmake installation script.
To reproduce this bug, you can check your cmake path by which, it should be /usr/bin/cmake.
But once you executed pip install cmake, then it will be /home/<username>/.local/bin/cmake.
You can cat this one, you will find out the cmake installed by pip is a shebang:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from cmake import cmake
if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(cmake())

which is wrongly use the global's python bin, instead of your virtual environment's.
To fix this, make sure your cmake's path is /usr/bin/cmake.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants