안녕하셔요.
백년만에 쓰는 개발 포스팅입니다.
파이썬 32비트 환경 설치 방법입니다.
.....약....6시간 삽질 뒤......제 의견입니다.....(결론 먼저..)
파이썬 32비트 하지 마셔요....
다른 라이브러리와 호환성이 많이 떨어집니다.
그래도 어쩔수 없다면.....
anaconda 가상 32bit에 설치된 라이브러리만 사용하실 계획이면...몰라도.
즉. 아래 글 3번글 까지만 하고 사용가능한 경우나,
conda로 지원하는 패키지만 하용하는 경우에만....사용하시면 어떨까 합니다.
py 으로 간단히 샘플 코드 만들어서 해봤는데..
테스트를 좀 하긴했는데....
되긴 하는데....
좀...환경 설치 시 빨간 글짜가 많이 뜨고...
pip check해도 충돌도 좀 있는 편이고...
뭐 이건 해결 가능한데요..
numpy나 pandas 가 32bit에서는 버전도 너무 낮고,
관련 라이브러리도 같이 낮고......
32bit라 메모리도 좀 적게 할당 될꺼 같기도 합니다.
결론은....
numpy나 pandas는 포기하고,
저는 psycopg2랑 pyQT5를 꼭 쓰고 싶었는데,
되긴하는데, 설치가 속 시원한 느낌이 아니라,
제 프로젝트 환경에서는 포기합니다.~
그래도 삽질한거 몇자 남깁니다.~
감사합니다.
아나콘다 설치 32비트 가상 환경 설치 삽질기.
0. anaconda 32bit 설치
anaconda 32bit 설치를 하는게, 파이썬 32bit를 설치하는 것 보다 나중에 고생이 적습니다.
파이썬 32bit 설치는 쉬운데요.
다른 라이브러리 들을 32bit로 설치하는 게 쉽지 않습니다.
예를 들어 psycopg2 라이브러리 (PostgreSQL 연동 라이브러리 입니다.)를 파이썬 32bit에 순수 설치하려면 ERROR가 나더라고요.
그래서, 많은 패키지가 있는 아나콘다를 설치 합니다.
1. 아나콘다를 설치 합니다.
설치 URL : https://www.anaconda.com/download/success
설치는 64bit 뿐이 없습니다.
그냥 설치 합니다.
좀 걸립니다.
2. 다 설치하면, 아나콘다 프롬프트를 실행 합니다.
프로그램 목록에 보면 있을껍니다.
3. 32bit를 변경 하고, conda 가상 환경을 32bit로 생성 합니다.
set CONDA_FORCE_32BIT=1
conda create -n py39_32 anaconda
시간이 좀 걸립니다.
(anaconda의 많은 패키지를 잘 사용하기 위해서 설치하는 게 많네요.)
잘 보면, win-32로 설치되는 걸 볼수 있습니다.
그리고, 아나콘다의 파이썬 버전에 상관없이 Python 3.9.12 로 설치되더라고요.
그래서 py39_32로 가상환경이름을 정했습니다.
4. 필요한 라이브러리를 설치 합니다.
psycopg2를 설치해 보도록 하겠습니다.
pip install로 설치는 됩니다.
conda install -c conda-forge psycopg2 # 이건 안되더군요.
pip install psycopg2 # 이걸로 설치 했습니다.
GPT에게 물어보니, "conda install을 먼저 실행하고 pip install을 나중에 실행해야 충돌 방지 가능" 라고 하네요. 간단한 명령어 보죠.
사실 여기서 부터 충돌을 연속입니다.;;;
4-1. conda 명령어
저도 conda는 익숙지 않아서
# 그냥 conda 명령어만 정리합니다.
set CONDA_FORCE_32BIT=1 # 이거 하면 안되더군요.
conda activate py39_32
# 가상환경 진입
conda info --all
# 환경 상태 점검
# 뭐 별거 없습니다. 중간에 잘 모면 win32 나옵니다.
conda list
# 패키지 목록
conda search --info numpy
# 특정 패키지의 설치 가능한 버전과 의존성을 확인 가능
# 리비전 롤백기능 헉...
conda list --revisions
# 리비전 리스트들 상태로 보여줌
출력 예시:
2024-03-18 Revision: 4
numpy 1.23.4 -> 1.24.2
pandas 1.4.3 -> 1.5.0
conda install --revision 3
# 종속성이 깨지기 전 상태로 복구 가능
conda update --all
# 실행하면 의존성이 깨진 패키지를 자동으로 수정할 수 있음.
conda update numpy
패키지 종속성 때문에 얼마나 고생했는지...
리비전 리스트와 롤백 기능이 있더군요..ㅎㅎ
5. 필요한 라이브러리가 있는지 확인 합니다.
pip install spyder==5.5.6
conda update --all
conda update numpy
pip install numpy==1.26.4
pip install -U numpy
conda update pandas
pip install -U pandas
conda update --all
# 이걸 적절히 했더니, 완성된 버전입니다.
# 다시 한번 말씀 드리지만, 32bit 환경에서 호환 라이브러리가 좀 그래서...
# 추천하지 않습니다 ;;;
# 다시 테스트해보니 pandas 버전도 날라가고, pyqt5 도 날라가네요.
pip show numpy
Name: numpy
Version: 1.26.4
pip show pandas
Name: pandas
Version: 2.2.2
pip show pywinpty
Name: pywinpty
Version: 2.0.10
pip show spyder
Name: spyder
Version: 5.5.1 -> Version: 5.5.6
pip show jupyter-server
Version: 1.13.5 -> Version: 1.17.1
pip show pyqt5
Name: PyQt5
WARNING: Package(s) not found: pyqt5 --> Version: 5.15.10 -> Version: 5.15.11
pip show psycopg2
Version: 2.9.10
6. 간단히 시험해 봅니다.
한방에...
32bit 파이선인지....넘파이, 판다스, pyQt5, DB 잘 되는지 봅니다.
GPT를 작성했습니다. (안 돌아도....뭐 그렇습니다.)
import sys
import numpy as np
import pandas as pd
import psycopg2
def main():
print("===== 테스트 시작 =====")
# Python 버전 및 아키텍처 확인
print(f"Python 버전: {sys.version}")
print(f"Python 아키텍처: {'32비트' if sys.maxsize <= 2 ** 32 else '64비트'}")
# NumPy Pandas가 정상적으로 동작하는지 확인
try:
# 1. NumPy가 정상적으로 동작하는지 확인
array = np.array([1, 2, 3, 4, 5])
print(f"✅ NumPy 배열 생성 성공: {array}")
# 2. Pandas가 정상적으로 동작하는지 확인
df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})
print(f"✅ Pandas 데이터프레임 생성 성공:\n{df}")
print("🎉 모든 테스트 통과! numpy & pandas가 정상적으로 작동합니다.")
except Exception as e:
print(f"❌ 오류 발생: {e}")
# PyQt5 버전 확인
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QVBoxLayout, QWidget
from PyQt5.QAxContainer import QAxWidget
try:
from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR
print(f"Qt 버전: {QT_VERSION_STR}")
print(f"PyQt 버전: {PYQT_VERSION_STR}")
except ImportError as e:
print(f"PyQt5 버전 확인 오류: {str(e)}")
# QAxContainer 가져오기 확인
try:
print("QAxContainer 모듈 가져오기 시도...")
from PyQt5.QAxContainer import QAxWidget
print("QAxContainer 모듈 가져오기 성공!")
except ImportError as e:
print(f"QAxContainer 가져오기 오류: {str(e)}")
# QApplication 생성
print("QApplication 생성 시도...")
app = QApplication(sys.argv)
print("QApplication 생성 성공!")
# 간단한 ActiveX 컨트롤 테스트
print("기본 ActiveX 컨트롤 테스트...")
try:
# Windows Media Player 테스트
print("Windows Media Player 컨트롤 테스트 중...")
ax_widget = QAxWidget()
result = ax_widget.setControl("WMPlayer.OCX")
print(f"WMPlayer.OCX 로드 결과: {'성공' if result else '실패'}")
# Shell.Explorer 테스트
print("Internet Explorer 컨트롤 테스트 중...")
ax_explorer = QAxWidget()
result = ax_explorer.setControl("Shell.Explorer")
print(f"Shell.Explorer 로드 결과: {'성공' if result else '실패'}")
print("ActiveX 컨트롤 테스트 완료!")
except Exception as e:
print(f"ActiveX 컨트롤 테스트 중 오류 발생: {str(e)}")
# PostgreSQL 연결 정보 설정
DB_CONFIG = {
"dbname": "postgres", # 데이터베이스 이름
"user": "postgres", # PostgreSQL 사용자
"password": "비밀번호", # 비밀번호
"host": "localhost", # 호스트 (원격 서버인 경우 IP 입력)
"port": "5432" # 기본 포트 (5432)
}
try:
# 데이터베이스 연결
conn = psycopg2.connect(**DB_CONFIG)
cursor = conn.cursor()
# PostgreSQL 버전 확인
cursor.execute("SELECT version();")
version = cursor.fetchone()
print("PostgreSQL 연결 성공!")
print("DB Version:", version[0])
# 연결 종료
cursor.close()
conn.close()
except Exception as e:
print("오류 발생:", e)
print("===== 테스트 완료 =====")
if __name__ == "__main__":
main()
되긴하는데....
안정성은 담보하기 어렵겠네요...
왜냐...
다음날 해보니.... 몇개 패키지가 날라가 있네요..ㅎㅎㅎ
이상 삽질기 였습니다.
'프로그래밍' 카테고리의 다른 글
postgresql 세팅 (1) | 2022.11.09 |
---|---|
파이참 단축키 모음 - PyCharm 단축키 (0) | 2021.01.25 |
라즈베리파이 3 세팅 (0) | 2019.12.24 |
파이썬 PEF 8 변수명 규칙 (0) | 2019.12.22 |
파이썬 Selenium 패키지 (0) | 2019.12.09 |
파이썬 selenium 부분 캡처 (0) | 2019.12.09 |
파이썬 selenium find_element_by_class_name 에서 공백 오류 (0) | 2019.11.28 |