CMake Error: The source directory "/tmp/pip-xxxx-build/khaiii-0.4" does not appear to contain CMakeLists.txt.
IAmEnchant opened this issue · 7 comments
python package 설치를 위해 pip3 install .
명령을 실행하면 다음과 같은 오류가 나타납니다.
user@host:~/khaiii/build/package_python$ pip3 install .
Processing /khaiii_build/khaiii/build/package_python
Installing collected packages: khaiii
Running setup.py install for khaiii ... error
Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-478gf4ho-build/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-bm0ekidn-record/install-record.txt --single-version-externally-managed --compile --user --prefix=:
running install
running build
CMake Error: The source directory "/tmp/pip-478gf4ho-build/khaiii-0.4" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-478gf4ho-build/setup.py", line 94, in <module>
cmdclass={'build': CustomBuild}
File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 129, in setup
return distutils.core.setup(**attrs)
File "/usr/lib/python3.6/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/lib/python3.6/distutils/dist.py", line 955, in run_commands
self.run_command(cmd)
File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/usr/lib/python3/dist-packages/setuptools/command/install.py", line 61, in run
return orig.install.run(self)
File "/usr/lib/python3.6/distutils/command/install.py", line 589, in run
self.run_command('build')
File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/tmp/pip-478gf4ho-build/setup.py", line 49, in run
subprocess.check_call('cmake ..', cwd=build_dir, shell=True)
File "/usr/lib/python3.6/subprocess.py", line 311, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command 'cmake ..' returned non-zero exit status 1.
----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-478gf4ho-build/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-bm0ekidn-record/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-478gf4ho-build/
사용 환경은 다음과 같습니다.
- OS : Ubuntu 18.04
- GCC : 7.4.0
- CMake : 3.13.3
- Python : 3.6.8
- pip : 9.0.1
참고가 될지 모르겠지만 make package_python
실행 결과입니다.
(khaiii) user@host:~/khaiii/build$ make package_python
-- [khaiii] fused multiply add option enabled
-- [hunter] Calculating Toolchain-SHA1
-- [hunter] Calculating Config-SHA1
-- [hunter] HUNTER_ROOT: /home/user/.hunter
-- [hunter] [ Hunter-ID: 70287b1 | Toolchain-ID: f1a5aaa | Config-ID: dffbc08 ]
-- [hunter] BOOST_ROOT: /home/user/.hunter/_Base/70287b1/f1a5aaa/dffbc08/Install (ver.: 1.68.0-p1)
-- Boost version: 1.68.0
-- [hunter] CXXOPTS_ROOT: /home/user/.hunter/_Base/70287b1/f1a5aaa/dffbc08/Install (ver.: 2.1.1-pre)
-- [hunter] EIGEN_ROOT: /home/user/.hunter/_Base/70287b1/f1a5aaa/dffbc08/Install (ver.: 3.3.5)
-- [hunter] FMT_ROOT: /home/user/.hunter/_Base/70287b1/f1a5aaa/dffbc08/Install (ver.: 4.1.0)
-- [hunter] GTEST_ROOT: /home/user/.hunter/_Base/70287b1/f1a5aaa/dffbc08/Install (ver.: 1.8.0-hunter-p11)
-- [hunter] NLOHMANN_JSON_ROOT: /home/user/.hunter/_Base/70287b1/f1a5aaa/dffbc08/Install (ver.: 3.3.0)
-- [hunter] SPDLOG_ROOT: /home/user/.hunter/_Base/70287b1/f1a5aaa/dffbc08/Install (ver.: 0.16.3-p1)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/khaiii/build
Run CPack packaging tool for source...
CPack: Create package using ZIP
CPack: Install projects
CPack: - Install directory: /home/user/khaiii
CPack: Create package
CPack: - package: /home/user/khaiii/build/khaiii-0.4.zip generated.
Built target package_python
(khaiii) user@host:~/khaiii/build$ cd package_python
(khaiii) user@host:~/khaiii/build/package_python$ ls -al
total 24
drwxrwxr-x 3 user user 4096 Jul 12 01:12 .
drwxrwxr-x 10 user user 4096 Jul 12 01:12 ..
drwxrwxr-x 2 user user 4096 Jul 12 01:12 khaiii
-rw-rw-r-- 1 user user 22 Jul 12 01:12 khaiii-0.4.zip
lrwxrwxrwx 1 user user 41 Jul 12 01:12 LICENSE -> /home/user/khaiii/LICENSE
-rw-rw-r-- 1 user user 87 Jul 12 01:12 MANIFEST.in
lrwxrwxrwx 1 user user 43 Jul 12 01:12 README.md -> /home/user/khaiii/README.md
-rw-rw-r-- 1 user user 2279 Jul 12 01:12 setup.py
(khaiii) user@host:~/khaiii/build/package_python$ file khaiii-0.4.zip
build/package_python/khaiii-0.4.zip: Zip archive data (empty)
khaiii-0.4.zip
파일이 비어있는 것으로 나옵니다.
처음 보는 현상이라 저도 원인을 짐작하기 힘드네요.
혹시 build 디렉토리에서 아래와 같이 빌드 및 테스트는 정상적으로 잘 되시는지요?
mkdir build
cd build
cmake ..
make -j
make resource
make test
테스트는 이상 없이 진행됩니다.
(khaiii) user@host:~/khaiii/build$ make test
Running tests...
Test project /home/user/khaiii/build
Start 1: test_khaiii
1/1 Test #1: test_khaiii ...................... Passed 0.09 sec
100% tests passed, 0 tests failed out of 1
Total Test time (real) = 0.10 sec
build
디렉터리 아래에서 make package_source
명령에 의해 khaiii-0.4.zip
파일이 생성되어야 하는데요.
혹시 이 명령을 수행했을 때에는 정상적으로 파일이 생성되나요?
(khaiii) user@host:~/khaiii/build$ make package_source
Run CPack packaging tool for source...
CPack: Create package using ZIP
CPack: Install projects
CPack: - Install directory: /home/user/khaiii
CPack: Create package
CPack: - package: /home/user/khaiii/build/khaiii-0.4.zip generated.
(khaiii) user@host:~/khaiii/build$ ls -al
total 120
drwxrwxr-x 11 user user 4096 Jul 12 17:56 .
drwxrwxr-x 12 user user 4096 Jul 12 02:27 ..
drwxrwxr-x 3 user user 4096 Jul 12 02:28 _3rdParty
drwxrwxr-x 2 user user 4096 Jul 12 02:38 bin
-rw-rw-r-- 1 user user 17649 Jul 12 02:28 CMakeCache.txt
drwxrwxr-x 11 user user 4096 Jul 12 02:43 CMakeFiles
-rw-rw-r-- 1 user user 3917 Jul 12 02:28 cmake_install.cmake
-rw-rw-r-- 1 user user 3702 Jul 12 02:28 CPackConfig.cmake
drwxrwxr-x 3 user user 4096 Jul 12 02:46 _CPack_Packages
-rw-rw-r-- 1 user user 3982 Jul 12 02:28 CPackSourceConfig.cmake
-rw-rw-r-- 1 user user 426 Jul 12 02:28 CTestTestfile.cmake
-rw-rw-r-- 1 user user 22 Jul 12 17:56 khaiii-0.4.zip
drwxrwxr-x 2 user user 4096 Jul 12 02:36 lib
-rw-rw-r-- 1 user user 36645 Jul 12 02:28 Makefile
drwxrwxr-x 3 user user 4096 Jul 12 02:46 package_python
drwxrwxr-x 3 user user 4096 Jul 12 02:44 share
drwxrwxr-x 2 user user 4096 Jul 12 02:43 test
drwxrwxr-x 3 user user 4096 Jul 12 02:46 Testing
(khaiii) user@host:~/khaiii/build$ file khaiii-0.4.zip
khaiii-0.4.zip: Zip archive data (empty)
해당 명령 또한 비어있는 zip 파일이 생성되었습니다.
make package_source
명령에 의해 소스코드가 묶여서 khaiii-0.4.zip
파일이 생성되어야 하는데, 이때도 여전히 빈 zip 파일이 생성되네요.
cpack
명령어가 제대로 동작하지 않는 것인데, 이런 경우는 처음이라 잘 모르겠네요. ㅠ.ㅠ
말씀하시는 cmake 버전을 보니 ubunbu 18.04의 apt
명령은 아니고 pip
명령으로 설치하신 듯 한데 맞나요?
다행히 ubuntu 18.04에서 apt
로 설치 가능한 cmake 버전이 3.10 이상이라 다음과 같이 cmake를 새로 설치한 다음 한번 해보실 수 있을까요?
# 기존 pip로 설치한 cmake 제거
pip uninstall cmake
# log off and log in
# apt 명령을 통한 cmake 설치
apt update -y
apt install cmake
알려주신 방법에도 소용 없어서 Ubuntu 19.04 환경에서 해보니 되더군요,
혹시나 하고 기존 Ubuntu 18.04 환경의 root 계정으로 해보니 또 되네요...
그래서 마지막으로 기존 계정의 ~/.hunter
디렉토리와 khaiii
디렉토리를 지우고 전부 다시 해서 성공했습니다.
원인은 모르겠지만 hunter workspace 구성에 문제가 있던 것 같습니다.
찝찝한 기분을 남기고 어정쩡하게 성공했네요.
user@host:~$ python3 test.py
안녕, 안녕/IC + ,/SP
세상. 세상/NNG + ./SF
비슷한 문제를 겪으시는 분이 생긴다면 ~/.hunter
디렉토리도 삭제해보시기 바랍니다.
신경써주셔서 감사합니다.