首页 > 解决方案 > Raspberry Pi django 服务器 ImportError 无法导入名称“etree”

问题描述

我正在尝试在 Raspberry Pi 上设置 Django 项目以服务于本地网络上的框架。我已经成功安装了 Django,它从 apache2 开始,网络上的所有计算机都可以看到默认的 Django“它工作”页面。加载我的应用程序后,我得到的网页有错误:ImportError cannot import name 'etree'在位置/home/pi/Django/Ponude/lib/python3.6/site-packages/docx/opc/oxml.py in <module>, line 12

我已经用 pip 安装了所有必需的模块,这里全部来自 pip freeze:

Django==2.2.3
lxml==3.6.0
Pillow==6.1.0
python-docx==0.8.10
pytz==2019.1
sqlparse==0.3.0

当我尝试在 shell 中手动导入模块时,导入没有问题,只有在启动 django 时。我已经尝试卸载和安装所有模块,但没有帮助。我还搜索了 Stack Overflow,但没有发现任何类似的东西或没有任何帮助。有人能帮帮我吗?可能是关于权限还是 apache2 配置?如果它有帮助,这是我的 apache2 配置:

<VirtualHost *:80>
    ServerName www.example.com

    ServerAdmin webmaster@localhost


    Alias /static /home/pi/Django/Ponude/Ponude/static
        <Directory /home/pi/Django/Ponude/Ponude/static>
           Require all granted
         </Directory>

    <Directory /home/pi/Django/Ponude/Ponude/Ponude>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    WSGIDaemonProcess Ponude python-path=/home/pi/Django/Ponude/Ponude:/home/pi/Django/Ponude/lib/python3.6/site-packages
    WSGIProcessGroup Ponude
    WSGIScriptAlias / /home/pi/Django/Ponude/Ponude/Ponude/wsgi.py

</VirtualHost>

谢谢

编辑:另外,当我使用 python manage.py runserver 命令手动启动 Django 时,没有错误

标签: pythondjangoapacheraspberry-pi3python-docx

解决方案


所以... Apache2 在 Python 3.5 上运行,即使我安装了 3.6 并且 Venv 有 3.6 并且我已明确设置为 3.6 python 路径。

我通过创建新的 venv 并在 python 3.5 中运行所有解决了这个问题。


推荐阅读