我是 Odoo 新手。 我使用 pyenv 来托管 odoo 和所有依赖项。全部在odoo系统用户下,我能够启动odoo服务:
~# systemctl status odoo-15
● odoo-15.service - Odoo15
Loaded: loaded (/etc/systemd/system/odoo-15.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-02-18 22:33:40 UTC; 6min ago
Main PID: 61267 (python)
Tasks: 6 (limit: 2339)
Memory: 79.3M
CGroup: /system.slice/odoo-15.service
└─61267 /home/odoo/.pyenv/versions/odoo-15-env/bin/python /home/odoo/odoo-15/odoo-bin -c /home/odoo/.odoo_config
但是,由于 PyPDF2 找不到,该服务似乎总是在大约 1 小时后自动停止:
Feb 18 16:10:28 ubuntu-s-1vcpu-2gb-sgp1-odoo systemd[1]: Started Odoo15.
Feb 18 17:19:32 ubuntu-s-1vcpu-2gb-sgp1-odoo odoo-15[58346]: Traceback (most recent call last):
Feb 18 17:19:32 ubuntu-s-1vcpu-2gb-sgp1-odoo odoo-15[58346]: File "/home/odoo/odoo-15/odoo-bin", line 5, in <module>
Feb 18 17:19:32 ubuntu-s-1vcpu-2gb-sgp1-odoo odoo-15[58346]: import odoo
Feb 18 17:19:32 ubuntu-s-1vcpu-2gb-sgp1-odoo odoo-15[58346]: File "/home/odoo/odoo-15/odoo/__init__.py", line 75, in <module>
Feb 18 17:19:32 ubuntu-s-1vcpu-2gb-sgp1-odoo odoo-15[58346]: import PyPDF2
Feb 18 17:19:32 ubuntu-s-1vcpu-2gb-sgp1-odoo odoo-15[58346]: ModuleNotFoundError: No module named 'PyPDF2'
Feb 18 17:19:32 ubuntu-s-1vcpu-2gb-sgp1-odoo systemd[1]: odoo-15.service: Main process exited, code=exited, status=1/FAILURE
Feb 18 17:19:32 ubuntu-s-1vcpu-2gb-sgp1-odoo systemd[1]: odoo-15.service: Failed with result 'exit-code'.
但是我的 pyenv 中肯定有 PyPDF2
odoo@ubuntu-s-1vcpu-2gb-sgp1-odoo:~/odoo-15$ python
Python 3.9.2 (default, Feb 17 2022, 17:59:57)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import PyPDF2
>>> PyPDF2.__version__
'1.26.0'
我觉得这与我的 virtualenv 配置有关,但我在这里有点迷失了。
您能帮助我了解这里可能出了什么问题吗?谢谢你
您需要激活虚拟环境并安装 Odoo 要求:
sudo pip install -r requirements.txt
或者直接安装此模块
pip3 install Pypdf2
检查此链接,它在博客上已修复
https://shilalg.blogspot.com/2019/07/importerror-no-module-named-pypdf2.html
您需要激活虚拟环境并在环境中安装模块,如果没有,它将无法识别安装。
转到你的 odoo 文件夹,查看原始问题
cd /home/odoo
source odoo15-venv/bin/activate
pip install PyPDF2
deactivate
service odoo15 restart
当你使用python3时 试试这个命令
apt-get 安装 python3-pypdf2
如果你使用 python venv(如我所想):
问题是会话被错误终止,ODOO 重新启动服务但不使用 VENV 上下文,因此 python3 找不到正确的依赖项
如果使用 venv,请查看正确的启动模式:
https://github.com/odoo/odoo/issues/33479#issuecomment-1207347677
通常发生在您忘记为odoo激活虚拟环境时。
如果您已经配置了虚拟环境。在运行 odoo 服务器之前启动你的 venv。
如果没有。然后你必须安装所有依赖项(位于odoo目录中的requirement.txt文件中)。
导航到 odoo 文件夹并运行
pip install -r requirements.txt
。按回车键。让它安装所有软件包并再次运行您的服务器。