[ERP] OpenERP odoo
odoo를 처음 설치하다보면 정말 많은 에러를 만나게 되는데 해당 에러들에 대해 알아보고 해결해보자.
requirements.txt를 설치하였을 때 문제가 없이 진행이 되어야 정상이지만 이는 환경에 따라 상이하기때문에 아래와 같은 기초적인 오류가 발생하게 되는 걸로 보인다.
대부분의 에러해결방법은 stack overflow, odoo document를 참조해서 해결하였습니다.
Install Error Issue
- error: subprocess-exited-with-error
해당 에러의 경우 pip install -r requirements.txt
관련 모듈을 설치하는 과정에서 일어나게 되는데 해결할 수 있는 방법은 3가지가 존재한다.
- pip 버젼 다운그레이드
odoo의 대부분 라이브러리의 경우 pip 버젼을 22.2.2를 권장한다.
명령어는python.exe -m pip install pip==22.2.2
입력해준다.
- ModuleNotFoundError: No module named ‘win32service’
모듈 설치를 진행해주면 된다.
pip install pywin32
- ModuleNotFoundError: No module named ‘chardet’
2번과 같이 모듈을 설치해주면 된다.
pip install chardet
-
ImportError: DLL load failed while importing win32service: The specified module could not be found. 위의 에러 다음에 바로 이어서 만나게 되는 에러이다.
이는 모듈을 해당 가상환경이 인식하지 못하기때문에 생기는 에러이기에 가상환경에도 해당 모듈을 설치해준다.conda install pywin32
orenv install pywin32
-
ImportError: cannot import name ‘utils’ from ‘PyPDF2’ ~~
2번과 마찬가지의 문제중 하나인데 이는 PyPDF2에서 utils를 찾을 수 없기때문에 생기는 문제이다.
우리가 odoo에서 최신 PyPDF2에 맞게끔 수정해주는 것이 좋지만, 효율적이지 못하므로 PyPDF2의 버젼을 맞춰주면 된다.
pip install pyPDF2==1.26.0
- AttributeError: module ‘werkzeug.routing’ has no attribute ‘NumberConverter’
4번과 똑같은 오류이다. 맞게끔 버젼을 맞춰주면 된다.
pip install Werkzeug==0.16.1
Platform Error
- Database creation error: Access Denied
데이터 베이스의 권한이 안되는 경우이다.
odoo에서는 처음 플랫폼 접근을 시도할 때 임의의 비밀번호를 지정해주게 되는데 이 값은 odoo 폴더 내부의 odoo.conf에 admin_passwd로 지정이 되어있다.
해당 비밀번호를 본인이 사용할 비밀번호로 교환한 다음 odoo를 재시작을 한 뒤 본인이 만든 비밀번호를 입력해주면 된다.
- Database creation error: connection to server at “localhost” (::1), port 5432 failed: fe_sendauth: no password supplied
이는 처음에 odoo를 시작할 때 python odoo-bin
으로 시작했을 가능성이 높다.
그러면 odoo가 localhost의 비밀번호와 데이터베이스에 접근을 할 수 없으므로 위와 같은 에러가 발생하게 된다.
python odoo-bin -r dbuser -w dbpassword --addons-path=addons -d mydb
dbuser
와 dbpassword
에는 본인 데이터베이스 이름과 비밀번호를 입력해주면 된다.