开发者社区 > 云原生 > Serverless > 正文

这个是怎么回事?

s deploy --use-local -y 还是一样有问题: ImportError at / cannot import name 'etree' from 'lxml' (/code/lxml/init.py) Request Method: GET Request URL: http://testsso.schaefflercn.com/ Django Version: 3.1.7 Exception Type: ImportError Exception Value:
cannot import name 'etree' from 'lxml' (/code/lxml/init.py) Exception Location: /code/index/saml.py, line 5, in Python Executable: /var/fc/lang/python3.9/bin/python3 Python Version: 3.9.8 Python Path:
['/code/', '/opt/python/lib/python3.9/site-packages', '/opt/python', '/var/fc/runtime/python3.9', '/var/fc/lang/python3.9/lib/python39.zip', '/var/fc/lang/python3.9/lib/python3.9', '/var/fc/lang/python3.9/lib/python3.9/lib-dynload', '/var/fc/lang/python3.9/lib/python3.9/site-packages'] Server time: Mon, 05 Sep 2022 10:15:32 +0800

提问3.png

展开
收起
云上静思 2022-09-05 17:12:23 589 0
1 条回答
写回答
取消 提交回答
  • 当前项目下有lxml这个目录, 回答1.png

    他会优先加载这部分。

    你要是没有特殊需要,最好不要pip install -t .和s build混用。因为python的依赖加载顺序,往往会优先加载当前项目的,你这就相当于把配置到环境中的覆盖掉了,会导致问题很难排插。

    你这个项目目前出问题主要是;

    1. lxml安装的依赖不能跨平台使用,可能是因为涉及到二进制等一些编译产物

    2. 你先pip install -t .了,导致lxml这些依赖已经在当前项目下存在了,再用s build即便安装成功,配置好了环境路径,他也会优先加载你当前项目的,所以你一直报错

    和-m模式没啥关系,你不管怎么-m,他都要遵循python加载的基础规范的。

    此答案来自钉钉“Serverless 开发者技术学习群”

    2022-09-05 19:54:47
    赞同 展开评论 打赏
问答分类:
问答地址:

快速交付实现商业价值。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载