사용자 경고: lzma 모듈을 가져올 수 없습니다.설치된 Python이 불완전합니다.
Google Cloud Bigquery Module 설치 후 모듈을 python code로 가져오면,이 경고 메시지가 표시됩니다.Python 3.7.3 Virtualenv에서 저에게 일어나는 일입니다.
Google.cloud import bigquery에서 "를 쓰면 GCP bigquery 모듈 Expectation-in python 코드를 다시 설치하려고 했습니다.오류나 메시지가 발생하지 않아야 합니다.
import os
import sys
import logging
from datetime import datetime
from google.cloud import bigquery
/home/informatica/.local/lib/python3.7/site-packages/pandas/compat/__init__.py:84: UserWarning: Could not import the lzma module. Your installed Python is incomplete. Attempting to use lzma compression will result in a RuntimeError.
warnings.warn(msg)
exit()
소스에서 Python을 컴파일하는 경우에는lzma-dev
패키지가 설치되지 않으면 python에 내장되지 않습니다.
unbuntu의 경우:sudo apt-get install liblzma-dev
센토스의 경우:yum install -y xz-devel
그리고나서configure && make && make install
여기서 다른 좋은 답변을 사용했지만 문제를 해결하지 못했습니다(Ubuntu 18.04, Python 3.8). 여전히 이 경고가 표시됩니다.실제로 이 문제를 해결하려면 패키지를 하나 더 설치해야 합니다.
sudo apt-get install lzma
따라서 전체 파이프라인(파이썬 소스 코드 폴더에서 실행):
sudo apt-get install liblzma-dev
sudo apt-get install lzma
./configure --enable-optimizations
sudo make
sudo make altinstall
MacOS와 pyenv(https://realpython.com/intro-to-pyenv/), 에서 저는 홈브루와 함께 xz를 설치함으로써 이 경고를 없앨 수 있었습니다.버전 python 3.6.9를 예로 사용
brew install xz && pyenv install 3.6.9
설치된 파이썬을 사용하려면 이를 에 추가해야 합니다..bash_profile
eval "$(pyenv init -)"
실행하여 사용하기 시작합니다.
pyenv global 3.6.9
macOS에서 pyenv를 사용하여 python을 관리하고 홈브루를 사용하여 패키지를 관리하는 경우 "xz"를 먼저 설치해야 합니다.
brew install xz
xz를 설치한 후 python 3.8을 설치할 수 있습니다(예를 들어 3.8.2를 사용합니다.
pyenv install 3.8.2
위의 내용으로 문제를 해결할 수 있습니다.
이 솔루션*은 제 설정에서 작동했습니다(애플 M1은pyenv
):
CFLAGS="-I$(brew --prefix xz)/include" LDFLAGS="-L$(brew --prefix xz)/lib" pyenv install 3.9.4
*편집(2023-02-08): 마틴 들릴의 도움이 되는 의견에 따라 링크가 삭제되었습니다.
사용 중인 경우centos
소스에서 파이썬을 컴파일하면 다음 명령에서 설치할 수 있습니다.
센토스의 경우:sudo yum install -y xz-devel
소스 코드에서 파이썬 다시 컴파일
cd Python-3.8*/
./configure --enable-optimizations
sudo make altinstall
https://github.com/pandas-dev/pandas/issues/27532 의 마지막 의견을 참조
brew install xz # To pick up liblzma
prefix=$(brew --prefix)
export LDFLAGS="-L$prefix/opt/xz/lib $LDFLAGS"
export CPPFLAGS="-I$prefix/opt/xz/include $CPPFLAGS"
export PKG_CONFIG_PATH="$prefix/opt/xz/lib/pkgconfig:$PKG_CONFIG_PATH"
# YOU CANNOT HAVE THE GNUBINS in your PATH when you run this
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.9.2
python3 -c "import lzma" # should work and not throw "cannot import _lzma"
제가 해결한 것은
sudo apt-get install libbz2-dev
sudo cp /usr/lib/python3.8/lib-dynload/_bz2.cpython-38-x86_64-linux-gnu.so/usr/local/lib/python3.8/
sudo cp /usr/lib/python3.8/lib-dynload/_lzma.cpython-38-x86_64-linux-gnu.so /usr/local/lib/python3.8/
https://github.com/pandas-dev/pandas/issues/28219 에서 솔루션을 찾았습니다.
방금 도망쳤어요.CPPFLAGS="-I$(brew --prefix xz)/include" pyenv install 3.10.0
- OS: 몬테레이
- M1 칩
- 파이엔브
- python 3.10.0
했다brew install xz
모든 것을 다시 설치했지만, 그것은 저에게 도움이 되지 않았습니다.
xz에 대한 올바른 링크를 추가하는 것이 도움이 되었습니다.
export LDFLAGS="-L$(brew --prefix xz)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib"
export CPPFLAGS="-I$(brew --prefix xz)/include -I$(brew --prefix readline)/include -I$(brew --prefix zlib)/include -I$(xcrun --show-sdk-path)/usr/include"
저는 Debian 10의 소스에서 Python 3.8을 구축했고 때때로 mlflow 서버를 전혀 시작할 수 없었고 성공적인 시작에도 불구하고 때때로 경고를 받았고 모든 팬더 가져오기에서도 이 경고를 받았습니다.
제가 성공한 것은 다음과 같습니다.
- 기존 설치를 제거했습니다.
- 다했
sudo apt install libncurses-dev libgdbm-dev libz-dev tk-dev libsqlite3-dev libreadline-dev liblzma-dev libffi-dev libssl-dev
- 소스에서 파이썬을 다시 빌드했습니다.
저는 다시는 경고를 받지 않았고 전혀 문제가 없었습니다.
나도 그것을 알아.
yum install -y lzma
또한 오류 없이 실행됩니다.
운영체:CentOS 8.X
아래의 실행 명령을 단계별로 수행한 다음 문제를 해결합니다.
sudo yum install -y xz-devel
cd Python-3.8.5
sudo ./configure --prefix=/usr/local/python3.8.5 --enable-optimizations --with-ssl
sudo make
sudo make install
"xz"와 "lzma"가 무엇인지에 대한 정보를 제공하고 싶습니다.
man xz
:
xz, unxz, xzcat, lzma, unlzma, lzcat - .xz 및 .lzma 파일 압축 풀기
https://www.nongnu.org/lzip/xz_inadequate.html :
xz는 현재 다른 컨테이너 형식(LZMA2)을 포함하는 컨테이너 형식입니다. LZMA 데이터와 압축되지 않은 데이터가 혼합되어 있습니다.
음, 제가 알기로는lzma
이며 압축알입다니즘입니다.xz
파일 형식입니다.
예를 들어, https://www.python.org/downloads/release/python-3106/ 에는 Gziped 소스 tarball에 비해 XZ 압축 소스 tarball이 있습니다.
그래서 만약 당신이 처리할 필요가 없다면..xz
판다 파일은 그냥 경고를 무시하고 계속 진행할 수 있습니다.그렇지 않으면 python을 다시 설치해야 하며 이미 시스템에 lzma 라이브러리가 설치되어 있습니다.lzma 라이브러리의 패키지 이름은 배포자/OS에 따라 다릅니다.예를 들어, Mac에서는xz
그리고 우분투 그것은liblzma-dev
.
참고:
https://pandas.pydata.org/pandas-docs/dev/whatsnew/v0.25.1.html#io-and-lzma
lzma vs zlib:
https://joblib.readthedocs.io/en/latest/auto_examples/compressors_comparison.html
1단계:sudo apt-get install liblzma-dev
2단계:pyenv install <python_version>
버전이 이미 설치되어 있는지 확인하는 메시지가 표시됩니다(예).이렇게 하면 이번에는 "완전하게" 다시 설치됩니다.
언급URL : https://stackoverflow.com/questions/57743230/userwarning-could-not-import-the-lzma-module-your-installed-python-is-incomple
'programing' 카테고리의 다른 글
리눅스에서 bash 스크립트의 GUI 메시지 상자를 표시하는 방법은 무엇입니까? (0) | 2023.05.22 |
---|---|
matplotlib에서 (x, y) 좌표 리스트 표시 (0) | 2023.05.22 |
이클립스: 메이븐 검색 종속성이 작동하지 않습니다. (0) | 2023.05.22 |
'보호됨'과 '보호됨 내부'의 차이점은 무엇입니까? (0) | 2023.05.22 |
Bash에서 문자열을 비교하는 방법 (0) | 2023.05.22 |